On this page
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'
More condensed:
>>> 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 模块提供以下Function:
md5.
new
([* arg *])- 返回一个新的 md5 对象。如果存在* arg *,则进行方法调用
update(arg)
。
- 返回一个新的 md5 对象。如果存在* arg *,则进行方法调用
md5.
md5
([* arg *])- 出于向后兼容的原因,这是new()函数的替代名称。
md5 对象具有以下方法:
md5.
update
(* arg *)- 用字符串* arg *更新 md5 对象。重复调用等效于将所有参数串联在一起的单个调用:
m.update(a); m.update(b)
等效于m.update(a+b)
。
- 用字符串* arg *更新 md5 对象。重复调用等效于将所有参数串联在一起的单个调用:
md5.
digest
( )- 返回到目前为止传递给update()方法的字符串的摘要。这是一个 16 字节的字符串,其中可能包含非 ASCII 字符,包括空字节。
md5.
hexdigest
( )- 像digest()一样,摘要以字符串形式返回,长度为 32,仅包含十六进制数字。这可用于在电子邮件或其他非二进制环境中安全地交换值。
md5.
copy
( )- 返回 md5 对象的副本(“克隆”)。这可用于有效地计算共享公共初始子字符串的字符串的摘要。
See also
Module sha
实现安全哈希算法(SHA)的类似模块。 SHA 算法被认为是更安全的哈希。