hash既然时数据唯一标识,那为何同样的数据,每次运行hash函数得到的的散列值都不一样呢?

来源:3-12 散列值与字典的存储原理(内存是如何存储数据)

慕用2334097

2019-11-05 08:54:45

hash既然时数据唯一标识,那为何同样的数据,每次运行hash函数得到的的散列值都不一样呢?

写回答

1回答

好帮手乔木

2019-11-05

同学你好:

python的字符串hash算法并不是直接遍历字符串每个字符去计算hash,而是会有一个secret prefix和一个secret suffix,可以认为相当于是给字符串加盐(通俗的2说就是加密)后做hash,可以规避一些规律输入的情况。

secret前后缀的值会直接影响计算结果,而且它有一个启动时随机(random)生成的机制,在3.x版本中这样每次启动都会不同,因此每次得到的hash值就不会相同。

如果我解决了同学的问题,请采纳!学习愉快^_^。



0

0 学习 · 8160 问题

查看课程