Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

hash()

Python拥有一个内置的哈希函数hash(),可以在Python 标准库文档找到对应的解释:

image-20250517194523752

(来源: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位的平台上,则