python 中的hashlib有加密和解密的功能
例:
import hashlib # 提供摘要算法的模块 md5 = hashlib.md5() md5.update(b'123456') # 注意是bytes print(md5.hexdigest())
输出结果:aee949757a2e698417463d47acac93df
不管算法多么不同,摘要的功能始终不变
对于相同的字符串使用同一个算法进行摘要,得到的值总是不变的
使用不同算法对相同的字符串进行摘要,得到的值应该不同
不管使用什么算法,hashlib的方式永远不变
用处:
1 密码的密文存储
2 文件的一致性验证
用户的登陆:
#用户的登录 import hashlib usr = input('username :') pwd = input('password : ') 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('登录成功')
加盐:
#加盐 import hashlib # 提供摘要算法的模块 md5 = hashlib.md5(bytes('盐',encoding='utf-8')) #加盐的步骤 # md5 = hashlib.md5() md5.update(b'123456') print(md5.hexdigest())
动态加盐: 使用用户名的一部分或者 直接使用整个用户名作为盐
import hashlib # 提供摘要算法的模块 md5 = hashlib.md5(bytes('盐',encoding='utf-8')+b'这里为用户的信息') # md5 = hashlib.md5() md5.update(b'123456') print(md5.hexdigest())