保持唯一性,请停止使用【python3 内置hash() 函数】

  如图,用hash() 筛重时竟然出现了重复。

  如下图:  

  hash字符串时,同一窗口的是一致的,不同窗口结果竟然不同。

保持唯一性,请停止使用【python3 内置hash() 函数】

 

原因:

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

  这个内置hash函数带有随机magic的功能有一定的安全性上的考虑,可以让攻击者难以预测内置的set或者dict的一些行为,但远不足以承担真正的密码安全级别的hash的作用。传递set和dict到其他进程的时候,只会传递其中的值,而不会传递hash表结构,hash表是传到之后重新建立起来的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsppgd.html