pyhon之路---hashlib模块

本文介绍了哈希算法的基本概念,包括其工作原理、特点及其应用场景。重点讲解了如何使用Python的hashlib库生成MD5哈希值,并探讨了哈希算法在文件完整性和密码安全中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么叫hash:一种算法--->将bytes类型的数据转换为数字及字母

特点:

1.只要传入的内容一样,得到的hash值必然一样

import hashlib
m=hashlib.md5()
# m.update('您好'.encode('utf-8'))
# m.update('世界'.encode('utf-8'))
# print(m.hexdigest())        #---> 5877b5e90951e7db09239fcc91902bdc

m.update('您好世界'.encode('utf-8'))
print(m.hexdigest())          #---> 5877b5e90951e7db09239fcc91902bdc
这个特点可以用在文件传输过程中确保文件的完整性(内容一样,前后hash值也必然一样)

2.不能由hash值反解成原内容

 这个特点可以用于密码传输,用户输入密码,在客户端完成转换hash转换(产生密文),通过网络传输密文,与服务端的密文进行对比

但是,可以在传输过程中进行抓包,使用暴力破解(不断尝试不同的习惯密码组合以相同的hash算法转换,与抓到的hash密文对比)

所以我们使用密码加盐,来增加破解的难度(增加破解的成本)

import hashlib

user = input('输入账户>>>')
pwd = input('输入密码>>>')
#加盐
top = '12345'
bottom = 'cnm'
data = top + user + bottom + pwd
#锁加密
lock = hashlib.md5()
lock.update(data.encode('utf-8'))
特点3:只要hash算法不变,无论校验的内容有多大,得到的hash值的长度是不变的(保证hash值不影响文件在传输过程中的效率)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值