该模块提供了一些常见的生成hash对象的接口,实现各种安全的散列和消息摘要算法,包括md5,sha1,sha221,sha256,sha384,sha512。(这里需要注意的是一些hash算法已经知道比较薄弱,可以查看hmac模块,base64模块了解更多信息,其中hmac加强了安全性)
我们可以利用这些接口简单快速的生成散列值
例如(md5为例,其它的一样):
d = hashlib.md5()
d.update("msg")#使用新数据更新散列,d.update('a')后再调用d.update('b')与d.update("a"+"b")效果是一样的
print d.digest() #将摘要作为原始字节字符返回
print d.hexdigest()#返回文本字符串,摘要的值编码为一系列的十六进制数字
print d.digest_size#所得散列的字节大小
print d.block_size#散列算法的内部块字节大小
该模块还提供了另外的可选接口:
new(hashname)
新建一个摘要对象,hashname为"md5"或"sha1”之类的字符串