python的hashlib模块提供一些常用的加密功能
例如获取字符串'Nobody inspects the spammish repetition'的MD5校验值In [48]: import hashlib
In [49]: m=hashlib.md5()
In [50]: m.update('Nobody inspects')
In [51]: m.update('the spammish repetition')
In [52]: m.digest()
Out[52]: '%\x8d3\xf9,:k\xe0?\xbb0+\xc4K\x94S'
In [53]: m.digest_size
Out[53]: 16
In [54]: m.block_size
Out[54]: 64
In [55]: m.hexdigest()
Out[55]: '258d33f92c3a6be03fbb302bc44b9453'
In [56]: m.digest_size
Out[56]: 16
In [57]: m.block_size
Out[57]: 64
这里定义一个HASH对象m,使用hashlib模块提供的md5()函数,还可以是
md5(), sha1(), sha224(), sha256(), sha384(), and sha512()
也可以根据操作系统提供的HASH算法,使用new()选择OpenSSL库提供的加密算法
sha384和sha512在32位系统上使用会比较慢
update(arg) 更新HASH对象,重复使用update(arg)等价于一次更新多个字符串的组合
m.update(a)和m.update(b)等价于m.update(a+b)
digest() 返回加密后的字符串
hexdigest() 返回加密码后的16进制字符串
digest_size 是加密后的哈希值字节
block_size 数据块大小
案例:def getMd5(strFile):
fh=open(strFile,"rb")
m=md5()
strRead=""
while True:
strRead=fh.read()
if not strRead:
break
m.update(strRead)
strMd5=m.hexdigest()
if fh:
fh.close()
return strMd5
print getMd5(__file__)
参考文章: