对于Hash算法的介绍,我们引用博文《Hash算法(含python实现) - yucen》中的介绍:

哈希(hash)也翻译作散列。Hash算法,是将一个不定长的输入,通过散列函数变换成一个定长的输出,即散列值。
这种散列变换是一种单向运算,具有不可逆性即不能根据散列值还原出输入信息,因此严格意义上讲Hash算法是一种消息摘要算法,不是一种加密算法。常见的hash算法有:SM3、MD5、SHA-1等。

其中,Hash算法的不可逆性是由于输入值的无穷性而散列值的有限性导致的;
在python中使用hash()会出现下面的现象:

相同字符串在同一次运行时的哈希值是相同的,但是不同次运行的哈希值不同。因此当需要做可重现可跨进程保持一致性的hash,需要用到hashlib模块。

示例代码如下:

# coding:utf-8
# 使用hashlib模块
import hashlib

md5 = hashlib.md5()     # 应用MD5算法
data = "hello world"
md5.update(data.encode('utf-8'))
print(md5.hexdigest())