MD5演算法實現細節 第三步和第四步

2021-07-04 03:48:01 字數 695 閱讀 5424

第三步

初始化:由於小端模式的原因,在程式中應該按如下定義:

a=0x67452301,b=0xefcdab89,c=0x98badcfe,d=0x10325476。

第四步

四輪迴圈運算:迴圈的次數是分組的個數(n+1)

實現細節:具體的運算過程不再贅述,按照博文中的即可。

經過四輪迴圈運算之後,結果儲存在a,b,c,d中,但是仍然由於小端模式的原因,此時的結果必須經過變換才能得到最終的md5值。圖1為經過四輪迴圈運算之後,a,b,c,d的值。為了確定你的結果是否正確,可以和**上的值進行對比,圖2為**上的結果。

對比兩圖,可以發現,圖1為圖2的小端模式儲存,因此在我們得到圖1的結果後,需要將其變換為圖2中的形式。

圖3為經過變換的資料,與圖2完全一致,至此完成了md5演算法。

MD5演算法實現

md5.h ifndef md5 h define md5 h typedef struct md5 ctx 非線性輔助函式 define f x,y,z x y x z define g x,y,z x z y z define h x,y,z x y z define i x,y,z y x z...

MD5演算法實現

md5.h ifndef md5 h define md5 h typedef struct md5 ctx 非線性輔助函式 define f x,y,z x y x z define g x,y,z x z y z define h x,y,z x y z define i x,y,z y x z...

java實現MD5演算法

public class md5 src class md5 static final byte padding private long state private long count private byte buffer public string digesthexstr private ...