常用模块——hashlib模块

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

猜你喜欢

转载自www.cnblogs.com/msj513/p/9810315.html