- 填充冗余信息
- 填充规则:先填1,然后一直填0
- 填充后的长度 % 512 = 448
- 最后的64位用来填文件的原始长度
- 最少填1bit,最多填512bit
- 原始长度 % 512 < 448 填充到448位,然后最后64位填文件原始长度
- 原始长度 % 512 >= 448 需要新开一个512bit的数据块,并填充到448位,然后最后64位填文件原始长度
- 信息摘要的计算
- ABCD四个整型
- A = 0x67452301
- B = 0xefcdab89
- C = 0x98badcfe
- D = 0x10325476
- 512bit为一个处理单元(chunk)
- 每个处理单元分为16份,每一份4个字节
- 依次经过函数F/G/H/I的处理
- F = F(b, c, d)
- d = c
- c =b
- b = b + shift((a + F + k[i] + chunk[g]), s[i])
- a = d
- 最后更新ABCD的值
- 处理完所有的chunk,拼接ABCD的摘要信息
- ABCD四个整型
计算文件的MD5
最新推荐文章于 2022-07-15 12:02:19 发布