提供多种哈希算法的模块。
哈希算法:又叫摘要算法,是一种给定输入计算出一种特殊的结果。哈希算法不可逆,比如输入一串字符串,输出一串奇怪的字符串,无法根据输出反向算出输入(除了暴力穷举破解)。
哈希算法可以用于校验文件一致性,对多个文件使用相同的哈希算法,若得到的结果相同,则表示文件完全相同,没有丢失或修改数据。
哈希算法有如下:
md5
sha1,sha224, sha256, sha384, sha512,
blake2b, blake2s
sha3_224, sha3_256, sha3_384, sha3_512
shake_128, shake_256……
在该模块中,以上算法都是类,可以调用产生相应的hash对象。
其中md5和sha1较常见,但是都可能发生碰撞。sha384 和sha512 在32位的平台上会较慢。
碰撞:不同的输入产生了相同的Hash结果。
该模块产生的hash对象具有以下四种方法:
-update(data):对输入字节更新哈希对象。更新不是替换,重复调用和将所有输入字符串拼起来一次性调用,产生相同结果。
-digest():返回update方法中输入的hash结果,为bytes对象。
-hexdigest():与digest()类似,但是仅包含十六进制数字,长度是digest结果的两倍。
-copy():复制哈希对象并返回,可用于计算公共初始子字符串的数据hash结果。