您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

Python的哈希函数专为提高速度而设计,并映射到64位空间中。由于生日悖论,这意味着您可能会在大约50亿个条目上发生冲突(可能更早了,因为哈希函数不是加密的)。另外,的确切定义hash取决于Python的实现,并且可能是特定于体系结构的,甚至是特定于机器的。如果您希望在多台计算机上获得相同的结果,请不要使用它。

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

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

还有一件事:为了节省空间,如果将数据写入磁盘,则应以二进制形式存储数据。(即struct.pack('!q', hash('abc'))/hashlib.md5('abc').digest())。

附带说明:is==Python不等效。你是说==

python 2022/1/1 18:32:00 有420人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶