现代术语是安全哈希。
每种类型的哈希都具有一个命名构造函数(此模块中始终存在的散列算法的构造函数为md5(),sha1(),sha224(),sha256(),sha384()和sha512())。摘要。
例一(计算一串数据的MD5):
1 import hashlib 2 3 str1 = b"hello " 4 str2 = b"world" 5 str3 = b"hello world" 6 7 m1 = hashlib.md5() #生成一个md5对象 8 m1.update(str1) #以bytes类型填充md5对象 9 m1.update(str2) 10 m2 = hashlib.md5() 11 m2.update(str3) 12 13 #digest()返回传递给update()方法的数据的摘要。它是一个大小为digest_size的字节对象,包含的字节可以在0到255整个范围。 14 print("m1 hexdigest: ", m1.digest()) 15 print("m2 hexdigest: ", m2.digest()) 16 #hexdigest()类似digest(),但是摘要以2倍长度的字符串对象返回,只包含十六进制数字。这可用于在电子邮件或其它非二进制环境中安全交换数据。 17 print("m1 hexdigest: ", m1.hexdigest()) 18 print("m2 hexdigest: ", m2.hexdigest()) 19 20 21 22 23 24 >>>: 25 m1 hexdigest: b'^\xb6;\xbb\xe0\x1e\xee\xd0\x93\xcb"\xbb\x8fZ\xcd\xc3' 26 m2 hexdigest: b'^\xb6;\xbb\xe0\x1e\xee\xd0\x93\xcb"\xbb\x8fZ\xcd\xc3' 27 m1 hexdigest: 5eb63bbbe01eeed093cb22bb8f5acdc3 28 m2 hexdigest: 5eb63bbbe01eeed093cb22bb8f5acdc3