Yuan_hibiscus 发表于 2020-10-8 17:22:29

我什么我用hash函数获得的值只有10位?

我想请问一下我在网上看到有的人获得字符串的hash值很长,而我的却只有10位,然后我想通过hash来设置字符串的id,但是数据太大,而hash值太短,一直出现重复的id,这个怎么解决?是电脑本身的问题,还是可以通过代码设置获取19位hash值?

疾风怪盗 发表于 2020-10-8 18:24:30

import hashlib

result=hashlib.md5(b'123456').hexdigest()
print(result)

>>>e10adc3949ba59abbe56e057f20f883e

不是这样的么?

Yuan_hibiscus 发表于 2020-10-8 18:32:55

疾风怪盗 发表于 2020-10-8 18:24
>>>e10adc3949ba59abbe56e057f20f883e

不是这样的么?

print(hash("123456"))
我是这样写的 结果是-830300730,只有9位

疾风怪盗 发表于 2020-10-8 18:41:04

Yuan_hibiscus 发表于 2020-10-8 18:32
print(hash("123456"))
我是这样写的 结果是-830300730,只有9位

没用过这个内置函数。。。。。不清楚

https://www.runoob.com/python/python-func-hash.html
看这介绍也没说清楚

而且这个值还不断变化的,每次刷新都不一样。。。。。。。

不要用这个了呗,教程里是用的这个算MD5
import hashlib
result=hashlib.md5(b'123456').hexdigest()
print(result)

Yuan_hibiscus 发表于 2020-10-8 18:45:00

疾风怪盗 发表于 2020-10-8 18:41
没用过这个内置函数。。。。。不清楚

https://www.runoob.com/python/python-func-hash.html


我想用来作为主键,md5可以吗?

萌出血 发表于 2020-10-8 18:46:50

hahs返回的是对象的hash,不是字符串的哈希

疾风怪盗 发表于 2020-10-8 18:47:09

Yuan_hibiscus 发表于 2020-10-8 18:45
我想用来作为主键,md5可以吗?

不知道你说的主键是什么。。。。。。{:10_284:}

md5大体上算是唯一的,碰到相同的概率蛮小的,而且不可逆算,现在不是普遍都用这个么

Yuan_hibiscus 发表于 2020-10-8 18:52:33

疾风怪盗 发表于 2020-10-8 18:47
不知道你说的主键是什么。。。。。。

md5大体上算是唯一的,碰到相同的概率蛮小的,而且不 ...

好的 谢谢

Yuan_hibiscus 发表于 2020-10-8 19:14:56

萌出血 发表于 2020-10-8 18:46
hahs返回的是对象的hash,不是字符串的哈希

我的对象不是字符串吗?

萌出血 发表于 2020-10-8 19:46:01

Yuan_hibiscus 发表于 2020-10-8 19:14
我的对象不是字符串吗?

那是字面量,const字面量

hrp 发表于 2020-10-8 19:50:35

Yuan_hibiscus 发表于 2020-10-8 19:14
我的对象不是字符串吗?

内置函数hash和haslib库不是一回事
页: [1]
查看完整版本: 我什么我用hash函数获得的值只有10位?