MD5算法:利用python进行md5 hash值的获取

MD5是一种广泛使用的128位密码散列函数,常用于数据校验。其特征包括固定长度的hash值,确定性,不可逆性,以及存在碰撞。由于安全性问题,MD5已被破解,不适用于安全认证。通过Python可以方便地计算MD5值,包括加盐和不加盐的方式,以及扩展的SHA256算法。

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

MD5基本概念

MD5,即信息摘要算法,英文为MD5 Message-Digest Algorithm,是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),也叫散列值,用于确保信息传输完整一致。
它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串,这个特殊的字符串就被称之为摘要。

MD5的作用

通常用于校验一组数据是否被篡改。例如,校验一个文件是否被篡改。

MD5特点及现状:

1)、hash值长度固定。它是一段固定长度的数据,即16个字节(128bit)。无论原始数据是多长或多短,其MD5值都是128bit。

2)、通常,计算出来的md5值包含0~9和大小写字母a ~ f, 以及A ~ F的32位可见字符。即将128bit的数据打印输出时,是一个32位的字符串。(因为直接输出16bytes的数据,是乱码,不可见)。

3)、hash值的确定性,一个原始数据的MD5值是唯一的,同一个原始数据不可能会计算出多个不同的MD5值。

4)、碰撞性,原始数据与其MD5值并不是一一对应的,有可能多个原始数据计算出来的MD5值是一样的,这就是碰撞。

5)、不可逆。即由已知的MD5值,无法还原出它的原始数据的。当然,很多网站可以查询md5的原始数据,是因为事先已经保存了数以万计的原始数据以及它的hash值,我们查询时,只是进行已知数据的查询匹配。

由于hash算法是不可逆的, 所以不存在解密的逻辑。

6)、不安全。由于md5无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

7)、我国著名教授王小云已经破解了包括MD5、SHA-1在内的5个国际通用哈希函数算法。

MD5值的获取:

很多平台自带md5值的获取,例如,可以用下面的命令计算一个文件的md5值:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liranke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值