字符串的 MD5 哈希值

该模块实现了许多不同安全散列和消息摘要算法的通用接口。包括 FIPS 安全散列算法 SHA1,SHA224,SHA256,SHA384 和 SHA512(在 FIPS 180-2 中定义)以及 RSA 的 MD5 算法(在 Internet RFC 1321 中定义)。

为每种类型的哈希命名了一个构造函数方法。全部返回具有相同简单接口的哈希对象。例如:使用 sha1() 创建 SHA1 哈希对象。

hash.sha1()

此模块中始终存在的哈希算法的构造函数是 md5()sha1()sha224()sha256()sha384()sha512()

你现在可以使用 update() 方法使用任意字符串提供此对象。在任何时候你都可以使用 digest()hexdigest() 方法询问它到目前为止连接到字符串串联的摘要。

hash.update(arg)

使用字符串 arg 更新哈希对象。重复调用相当于一次调用,并连接所有参数:m.update(a); m.update(b) 相当于 m.update(a + b)。

hash.digest()

返回到目前为止传递给 update() 方法的字符串的摘要。这是一个 digest_size 字节字符串,可能包含非 ASCII 字符,包括空字节。

hash.hexdigest()

digest() 类似,但摘要以双倍长度的字符串形式返回,仅包含十六进制数字。这可用于在电子邮件或其他非二进制环境中安全地交换值。

这是一个例子:

>>> import hashlib
>>> m = hashlib.md5()
>>> m.update("Nobody inspects")
>>> m.update(" the spammish repetition")
>>> m.digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
>>> m.hexdigest()
'bb649c83dd1ea5c9d9dec9a18df0ffe9'
>>> m.digest_size
16
>>> m.block_size
64

要么:

hashlib.md5("Nobody inspects the spammish repetition").hexdigest()
    'bb649c83dd1ea5c9d9dec9a18df0ffe9'