MD5算法实现细节--------第三步和第四步

在上一篇博文中提到了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的小端模式存储,因此在我们得到图1的结果后,需要将其变换为图2中的形式。

图3为经过变换的数据,与图2完全一致,至此完成了MD5算法。
这里写图片描述

发布了22 篇原创文章 · 获赞 7 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章