摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。摘要算法就是通过摘要函数f()对任意长度的数据data计算出固定长度的摘要digest,目的是为了发现原始数据是否被人篡改过(不同的data计算出来的摘要不同)。
常见的摘要算法有MD5和SHA1
MD5
import hashlib
m=hashlib.md5()
m.update('zhangkang')
print(m.hexdigest())
输出:
09b32682a49db34d3c9d7e6d97f85a4a
如果数据太长,可以多次调用update(),结果是一样的
import hashlib
m=hashlib.md5()
m.update('zhang')
m.update('kang') #输出结果一样
print(m.hexdigest())
输出:
09b32682a49db34d3c9d7e6d97f85a4a
假如我们改变原始数据中的一个字母看看计算的MD5值是否完全不同

本文介绍了摘要算法的基本概念,重点讲解了Python中常用的MD5和SHA1算法。MD5能够将任意长度的数据转化为32位16进制字符串,而SHA1则生成40位16进制字符串。这两种算法常用于数据完整性的校验,例如在保存密码时,通常保存的是密码的MD5或SHA1值,而非明文,以提高安全性。在计算时,可通过多次调用update()处理长数据,并且可以结合“加盐”提高密码的安全性。
最低0.47元/天 解锁文章
477

被折叠的 条评论
为什么被折叠?



