MD5加密算法
本文最后更新于:1 年前
MD5 Message Digest Algorithm 是对任意长度的消息进行运算,产生一个128位的消息摘要。
1.算法特点与作用
- 压缩性:任意长度的数据,算出的MD5值长度都是固定的。
- 容易计算:从原数据计算出MD5值很容易。
- 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
- 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
- MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
2.算法生成
数据末尾填充0x80
计算原始数据的长度
用零填充直到数据的字节数是64的倍数为止 按照小端序存储
把数据进行分组一组位64(512位)个字节 进行计算最终获得一个16个字节的MD5码
初始化四个值 按照小端序存储
进行一组数据的计算 定义临时变量并赋值 a = A b = B c = C d = D
计算a的值
a = (a + F + K[i] +M[g]) << s[i]) + b
交换数据
b = a ; c = b ; d = c ; a = d
循环上述两个步骤64次
计算
A = A + a ; B = B + b ; C = C + c ; D = D + d
更新中 a , b , c , d 计算组二数据(更新第五步中的 a b c d)
当完成最后一组数据的计算获得 A : B : C : D以小端序组合获得最终16个字节就是MD5
MD5加密算法
https://wlpswmt.github.io/2023/03/22/MD5加密算法/