hash既然时数据唯一标识,那为何同样的数据,每次运行hash函数得到的的散列值都不一样呢?
来源:3-12 散列值与字典的存储原理(内存是如何存储数据)
慕用2334097
2019-11-05 08:54:45
hash既然时数据唯一标识,那为何同样的数据,每次运行hash函数得到的的散列值都不一样呢?
1回答
同学你好:
python的字符串hash算法并不是直接遍历字符串每个字符去计算hash,而是会有一个secret prefix和一个secret suffix,可以认为相当于是给字符串加盐(通俗的2说就是加密)后做hash,可以规避一些规律输入的情况。
secret前后缀的值会直接影响计算结果,而且它有一个启动时随机(random)生成的机制,在3.x版本中这样每次启动都会不同,因此每次得到的hash值就不会相同。
如果我解决了同学的问题,请采纳!学习愉快^_^。