14.3. md5 — MD5 消息摘要算法 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/md5
跳转至:导航、​搜索

14.3. MD5 — MD5 消息摘要算法

自 2.5 版起已弃用: 改用 hashlib 模块。


该模块实现了 RSA 的 MD5 消息摘要算法的接口(另请参见 Internet RFC 1321)。 它的使用非常简单:使用 new() 创建一个 md5 对象。 您现在可以使用 update() 方法为这个对象提供任意字符串,并且在任何时候您都可以要求它提供 digest(一种强大的 128 位校验和,又名 到目前为止使用 digest() 方法输入的字符串串联的“指纹”)。

例如,要获取字符串 'Nobody inspects the spammish repetition' 的摘要:

>>> import md5
>>> m = md5.new()
>>> 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'

更浓缩:

>>> md5.new("Nobody inspects the spammish repetition").digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'

以下值作为模块中的常量以及由 new() 返回的 md5 对象的属性提供:

md5.digest_size
结果摘要的大小(以字节为单位)。 这始终是 16

md5 模块提供以下功能:

md5.new([arg])
返回一个新的 md5 对象。 如果存在 arg,则进行方法调用 update(arg)
md5.md5([arg])
出于向后兼容性的原因,这是 new() 函数的替代名称。

md5 对象具有以下方法:

md5.update(arg)
使用字符串 arg 更新 md5 对象。 重复调用等效于将所有参数串联起来的单个调用:m.update(a); m.update(b) 等效于 m.update(a+b)
md5.digest()
返回到目前为止传递给 update() 方法的字符串的摘要。 这是一个 16 字节的字符串,可能包含非 ASCII 字符,包括空字节。
md5.hexdigest()
digest() 类似,但摘要作为长度为 32 的字符串返回,仅包含十六进制数字。 这可用于在电子邮件或其他非二进制环境中安全地交换值。
md5.copy()
返回 md5 对象的副本(“克隆”)。 这可用于有效计算共享公共初始子字符串的字符串的摘要。

也可以看看

模块 sha
实现安全哈希算法 (SHA) 的类似模块。 SHA 算法被认为是更安全的哈希。