hashlib模块(常用于加密)
hashlib模块(常用于加密)
-
包含很多的加密算法,MD5,sha系列
-
用途:
- 密码加密,不能以明文的形式存储密码,要以密文的形式
- 文件的校验
-
用法:
- 将bytes类型的字节转换成固定长度的16进制数字组成的字符串
- 不同的bytes类型利用相同的算法(MD5)转化成的结果一定不同
- 相同的bytes类型利用相同的算法(MD5)转化成的结果一定相同
- hashilb算法是不可逆(MD5被中国的王晓云破解了)
-
MD5加密
s1='dfghjkl;fghjklfghjJJJ哈哈哈' import hashlib ret=hashlib.md5() ret.update(s1.encode('utf-8')) print(ret.hexdigest())
-
加盐(目的保证数据安全)(动态加盐就是把加盐的字符串改成动态的)
import hashlib def inner(f): s1=hashlib.md5('baobei'.encode('utf-8')) #加盐 s1.update(f.encode('utf-8')) return s1.hexdigest() def Reg(): username=input('你输入注册姓名:') password=input('你输入注册密码:') password=inner(password) with open('用户信息.txt',encoding='utf-8',mode='a')as f1: f1.write(f'{username}|{password}\n') return password st=Reg()
-
sha系列(金融类、安全类要求用它)(用法和md5一样)
-
随之sha系列数字越高 ,加密越复杂,越不易破解、但是耗时越长
-
s1='dfghjkl;fghjklfghjJJJ哈哈哈' import hashlib ret=hashlib.sha3_256() ret.update(s1.encode('utf-8')) print(ret.hexdigest())
-
-
文件的校验
- 服务端会有一个md5码,客户端也有一个md5码,当服务端和客户端MD5码一样是说明文件一样