@DingCao-HJJ
2015-10-31T13:52:03.000000Z
字数 862
阅读 5034
MD5
将输入信息text
的位数按照特定的方法填充至512的整数倍,然后每512位为一个分组M[i]
进行处理。
每个分组又将分为16个32位的子分组,经过一系列循环后将产4个32位的散列值a, b, c, d
,作为下一个分组的输入。
最终,将a, b, c, d
组合起来即可得到text
的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]
中的<<
操作表示循环左移位。