hash()
Python拥有一个内置的哈希函数hash()
,可以在Python 标准库文档找到对应的解释:
(来源:https://docs.python.org/3/library/stdtypes.html#hashing-of-numeric-types)
也就是说,在32位的平台上哈希是通过
计算出来的。而在64位的平台上,是通过
碰撞(Collision)
这个哈希函数的构造意味着我们可以非常轻松地找到一个哈希碰撞(Collision),因为它两种resistance(Weak and strong collision resistance)都不满足。
假设现在给定一个整数$x$。
如果是在32位的平台上,则可以通过以下公式计算出一个$y$使得$\text{hash}(x)=\text{hash}(y)$
如果是在64位的平台上,则
。