hashlib模块
hashlib是一种算法,将一个任意长的数据根据计算得到一个固定长度的特征码。
特征:
不同输入可能会有相同的结果,但是几率特别小。
相同输入必然得到相同的结果。
由于散列(特征)的性质从原理上来看是不可能被反解的。
应用场景:
用来验证两个输入的数据是否一致
1.密码验证:
客户端通过加密,发送加密的密码给服务端
2.验证数据是否被篡改,比如游戏安装包,有没有被改过。
为了防止被别人撞库成功,可用提升密码的复杂度,其次可以为密码加盐(加点内容进去)
用法
import hashlib res = hashlib.md5('123'.encode('utf-8'))#MD5加密方法 #加密的东西必须为二进制位 print(res.hexdigest())#以十六进制数字显示
撞库的原理是将常用的内容通过存储对应关系,来解析haslib的到的值是什么。
所以除了增加密码复杂度的方法,还可以通过加盐的方法使得不被撞库破解。
m = hashlib.md5('123'.encode('utf-8')) print(m.hexdigest()) m.update('ssssdf'.encode('utf-8'))#加盐的方式 print(m.hexdigest()) #202cb962ac59075b964b07152d234b70 #7b489317c98ae4d4594c23fa0f4725d1