import hashlib #提供摘要算法的模块,MD5算法是最常用的
md5 = hashlib.md5()
md5.update(b'alex3714') #只能摘要bytes类型的内容
print(md5.hexdigest())
不管算法多么不同,摘要的功能始终不变——对相同的字符串使用同一个算法进行摘要,得到的值总是不变的
不管使用什么算法,使用hashlib的方式永远不变
随着算法复杂程度的增加,摘要的时间和空间成本都会增加
摘要算法:
1.密码的密文存储
2.文件的一致性验证
#用户登录
import hashlib
usr = input('请输入账号:')
pwd = input('请输入密码:')
with open('userinfo') as f:
for line in f:
user,passwd,role = line.split('|')
md5 = hashlib.md5()
md5.update(bytes(pwd,encoding='utf-8'))
md5_pwd = md5.hexdigest
if usr == user and md5_pwd == passwd:
print('登录成功')
摘要算法加盐
md5 = hashlib.md5(bytes('盐',encoding = 'utf-8'))
动态加盐
校验文件一致性不需要加盐
需要分批update然后再一次hexdigest