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(‘登陆成功‘)