MD5算法流程图

MD5算法原理和流程

转载:https://www.zybuluo.com/DingCao-HJJ/note/202937
直接代码实现:https://blog.csdn.net/xhhjin/article/details/8450686

MD5

原理

将输入信息text的位数按照特定的方法填充至512的整数倍,然后每512位为一个分组M[i]进行处理。
每个分组又将分为16个32位的子分组,经过一系列循环后将产4个32位的散列值a, b, c, d,作为下一个分组的输入。
最终,将a, b, c, d组合起来即可得到text的MD5值。

流程

MD5算法流程图
**

MD5流程

**

详细操作步骤

主流程

MD5算法流程图

填充信息

MD5算法流程图

分组处理信息

MD5算法流程图

主循环

MD5算法流程图
其中,FGHI操作分别是:
F( X ,Y ,Z ) = ( X & Y ) | ( (~X) & Z )
G( X ,Y ,Z ) = ( X & Z ) | ( Y & (~Z) )
H( X ,Y ,Z ) =X ^ Y ^ Z
I( X ,Y ,Z ) =Y ^ ( X | (~Z) )

语句
a = (a + fun + k[j] + N[index]) << s[j]
中的<<操作表示循环左移位。