字符串的 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'