这是对python内置哈希函数的适当使用吗?

这是对python内置哈希函数的适当使用吗?,第1张

这是对python内置哈希函数的适当使用吗?

Python的哈希函数专为提高速度而设计,并映射到64位空间中。由于生日悖论,这意味着您可能会在大约50亿个条目上发生冲突(可能更早了,因为哈希函数不是加密的)。另外,的确切定义

hash
取决于Python的实现,并且可能是特定于体系结构的,甚至是特定于机器的。如果您希望在多台计算机上获得相同的结果,请不要使用它。

md5被设计为加密哈希函数;输入中即使有轻微的扰动也会完全改变输出。它还映射到一个128位的空间,这使您几乎不可能遇到碰撞,除非您专门寻找一个碰撞。

如果您可以处理冲突(例如,可以通过使用MD5或SHA2等加密算法来测试存储桶中所有成员之间的相等性),那么Python的哈希函数就可以了。

还有一件事:为了节省空间,如果将数据写入磁盘,则应以二进制形式存储数据。(即

struct.pack('!q', hash('abc'))
/
hashlib.md5('abc').digest()
)。

附带说明:is与

==
Python不等效。你是说
==



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5646119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存