在上一篇博文中提到了MD5實現的第一步和第二步,這裏繼續後續的兩步。
http://blog.csdn.net/sinat_26551021/article/details/47103203
第三步
初始化:由於小端模式的原因,在程序中應該按如下定義:
a=0x67452301,b=0xEFCDAB89,c=0x98BADCFE,d=0x10325476。
第四步
四輪循環運算:循環的次數是分組的個數(N+1)
實現細節:具體的運算過程不再贅述,按照博文中的即可。
http://blog.csdn.net/forgotaboutgirl/article/details/7258109
經過四輪循環運算之後,結果存儲在a,b,c,d中,但是仍然由於小端模式的原因,此時的結果必須經過變換才能得到最終的MD5值。圖1爲經過四輪循環運算之後,a,b,c,d的值。爲了確定你的結果是否正確,可以和網站http://www.cmd5.com/上的值進行對比,圖2爲網站上的結果。
對比兩圖,可以發現,圖1爲圖2的小端模式存儲,因此在我們得到圖1的結果後,需要將其變換爲圖2中的形式。
圖3爲經過變換的數據,與圖2完全一致,至此完成了MD5算法。