常用模块——hashlib模块

本文深入讲解了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

 

转载于:https://www.cnblogs.com/msj513/p/9810315.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值