python学习笔记(40) hashlib模块

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

猜你喜欢

转载自www.cnblogs.com/farion/p/9934301.html