hashlib模块 提供摘要算法
主要做对比,比较两段代码是否完全一致
不管算法多么不同,摘要功能始终不变,
对同一个字符串进项同一算法摘要得到的值始终不变
MD5值的生成
import hashlib sha1 = hashlib.md5() #一定加括号 sha1.update(bytes('alex3421',encoding='utf-8')) print(sha.hexdigest())
sha 算法随着算法复杂程度的增加,时间空间都会提高
密码的密文存储
文件一致性验证(不需要加盐,别人不知道你的盐是什么)
1、在下载时,检查我们下载的文件和远程服务器上的文件是否一致
2、两台机器上的两个文件你想检查这两个文件是否相等
import hashlib usr1 = input('请输入注册用户名>>>') psd1 = input('密码>>>') with open('file') as f3:for i in f3:use2,psd2=i.split('|')if use2 == usr1:print('已存在用户名')else:with open('file','a') as f1:md5 = hashlib.md5(bytes(usr1[:2],encoding='utf-8')+bytes('Ebola',encoding='utf-8'))md5.update(bytes(psd1,encoding='utf-8'))md5_psd1 = md5.hexdigest()f1.write('{}|{}\n'.format(usr1,md5_psd1)) usr = input('请输入用户名>>>') psd = input('密码>>>') with open('file') as f:for i in f:username,passwd = i.split('|')passwd = passwd.strip()md5 = hashlib.md5(bytes(usr[:2],encoding='utf-8')+bytes('Ebola',encoding='utf-8')) #动态加盐md5.update(bytes(psd,encoding='utf-8'))md5_psd = md5.hexdigest()if usr == username and md5_psd == passwd:print('登陆成功')