📄 md5算法研究(2).htm
字号:
<TD height=1></TD></TR>
<TR bgColor=#ffcc00>
<TD align=right height=23 width=355>
<CENTER></CENTER>
<P align=center>中国动感资源交流,网络动感资源荟萃</P></TD>
<TD align=middle>
<P align=center><A href="http://www.moonet.com/edu/">教育网</A>
英文版</P></TD></TR></TBODY></TABLE>
<CENTER>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=755>
<TBODY>
<TR vAlign=top>
<TD bgColor=#297dff width=1> </TD>
<TD width=753></TD>
<TD bgColor=#297dff width=1> </TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=755>
<TBODY>
<TR vAlign=top>
<TD bgColor=#297dff width=1> </TD>
<TD width=753>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD bgColor=#297dff colSpan=2 height=20><FONT color=#ceffff> →
<A href="http://www.aspsky.net/article/index.asp?classid=2"><FONT
color=#ceffff>ASP技术</FONT></A> >> <A
href="http://www.aspsky.net/article/index.asp?classid=2&Nclassid=5"><FONT
color=#ceffff>安全加密</FONT></A> >> 《MD5算法研究(2)》</FONT></TD></TR>
<TR>
<TD bgColor=#586011 colSpan=2 height=1><SPACER type="block"
width="1"></TD></TR>
<TR>
<TD colSpan=2 height=7></TD></TR>
<TR>
<TD align=middle class=p4
colSpan=2><B>MD5算法研究(2)</B></FONT><BR>2002-5-22 动网先锋
</TD></TR>
<TR>
<TD class=p4 colSpan=2>
<BLOCKQUOTE><BR>FF(b,c,d,a,M3,22,0xc1bdceee)<BR> FF(a,b,c,d,M4,7,0xf57c0faf)<BR> FF(d,a,b,c,M5,12,0x4787c62a)<BR> FF(c,d,a,b,M6,17,0xa8304613)<BR> FF(b,c,d,a,M7,22,0xfd469501)<BR> FF(a,b,c,d,M8,7,0x698098d8)<BR> FF(d,a,b,c,M9,12,0x8b44f7af)<BR> FF(c,d,a,b,M10,17,0xffff5bb1)<BR> FF(b,c,d,a,M11,22,0x895cd7be)<BR> FF(a,b,c,d,M12,7,0x6b901122)<BR> FF(d,a,b,c,M13,12,0xfd987193)<BR> FF(c,d,a,b,M14,17,0xa679438e)<BR> FF(b,c,d,a,M15,22,0x49b40821)
<P></P>
<P> 第二轮</P>
<P> GG(a,b,c,d,M1,5,0xf61e2562)<BR> GG(d,a,b,c,M6,9,0xc040b340)<BR> GG(c,d,a,b,M11,14,0x265e5a51)<BR> GG(b,c,d,a,M0,20,0xe9b6c7aa)<BR> GG(a,b,c,d,M5,5,0xd62f105d)<BR> GG(d,a,b,c,M10,9,0x02441453)<BR> GG(c,d,a,b,M15,14,0xd8a1e681)<BR> GG(b,c,d,a,M4,20,0xe7d3fbc8)<BR> GG(a,b,c,d,M9,5,0x21e1cde6)<BR> GG(d,a,b,c,M14,9,0xc33707d6)<BR> GG(c,d,a,b,M3,14,0xf4d50d87)<BR> GG(b,c,d,a,M8,20,0x455a14ed)<BR> GG(a,b,c,d,M13,5,0xa9e3e905)<BR> GG(d,a,b,c,M2,9,0xfcefa3f8)<BR> GG(c,d,a,b,M7,14,0x676f02d9)<BR> GG(b,c,d,a,M12,20,0x8d2a4c8a)</P>
<P> 第三轮</P>
<P> HH(a,b,c,d,M5,4,0xfffa3942)<BR> HH(d,a,b,c,M8,11,0x8771f681)<BR> HH(c,d,a,b,M11,16,0x6d9d6122)<BR> HH(b,c,d,a,M14,23,0xfde5380c)<BR> HH(a,b,c,d,M1,4,0xa4beea44)<BR> HH(d,a,b,c,M4,11,0x4bdecfa9)<BR> HH(c,d,a,b,M7,16,0xf6bb4b60)<BR> HH(b,c,d,a,M10,23,0xbebfbc70)<BR> HH(a,b,c,d,M13,4,0x289b7ec6)<BR> HH(d,a,b,c,M0,11,0xeaa127fa)<BR> HH(c,d,a,b,M3,16,0xd4ef3085)<BR> HH(b,c,d,a,M6,23,0x04881d05)<BR> HH(a,b,c,d,M9,4,0xd9d4d039)<BR> HH(d,a,b,c,M12,11,0xe6db99e5)<BR> HH(c,d,a,b,M15,16,0x1fa27cf8)<BR> HH(b,c,d,a,M2,23,0xc4ac5665)</P>
<P> 第四轮</P>
<P> II(a,b,c,d,M0,6,0xf4292244)<BR> II(d,a,b,c,M7,10,0x432aff97)<BR> II(c,d,a,b,M14,15,0xab9423a7)<BR> II(b,c,d,a,M5,21,0xfc93a039)<BR> II(a,b,c,d,M12,6,0x655b59c3)<BR> II(d,a,b,c,M3,10,0x8f0ccc92)<BR> II(c,d,a,b,M10,15,0xffeff47d)<BR> II(b,c,d,a,M1,21,0x85845dd1)<BR> II(a,b,c,d,M8,6,0x6fa87e4f)<BR> II(d,a,b,c,M15,10,0xfe2ce6e0)<BR> II(c,d,a,b,M6,15,0xa3014314)<BR> II(b,c,d,a,M13,21,0x4e0811a1)<BR> II(a,b,c,d,M4,6,0xf7537e82)<BR> II(d,a,b,c,M11,10,0xbd3af235)<BR> II(c,d,a,b,M2,15,0x2ad7d2bb)<BR> II(b,c,d,a,M9,21,0xeb86d391)</P>
<P> 常数ti可以如下选择:</P>
<P> 在第i步中,ti是4294967296*abs(sin(i))的整数部分,i的单位是弧度。(4294967296等于2的32次方)<BR>所有这些完成之后,将A、B、C、D分别加上a、b、c、d。然后用下一分组数据继续运行算法,最后的输出是A、B、C和D的级联。</P>
<P> 当你按照我上面所说的方法实现MD5算法以后,你可以用以下几个信息对你做出来的程序作一个简单的测试,看看程序有没有错误。</P>
<P> MD5 ("") = d41d8cd98f00b204e9800998ecf8427e<BR> MD5 ("a")
= 0cc175b9c0f1b6a831c399e269772661<BR> MD5 ("abc") =
900150983cd24fb0d6963f7d28e17f72<BR> MD5 ("message digest") =
f96b697d7cb7938d525a2f31aaf161d0<BR> MD5
("abcdefghijklmnopqrstuvwxyz") =
c3fcd3d76192e4007dfb496cca67e13b<BR> MD5
("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
=<BR>d174ab98d277d9f5a5611c2c9f419d9f<BR> MD5
("123456789012345678901234567890123456789012345678901234567890123456789<BR>01234567890")
= 57edf4a22be3c955ac49da2e2107b67a</P>
<P> 如果你用上面的信息分别对你做的MD5算法实例做测试,最后得出的结论和标准答案完全一样,那我就要在这里象你道一声祝贺了。要知道,我的程序在第一次编译成功的时候是没有得出和上面相同的结果的。</P>
<P><BR> MD5的安全性</P>
<P> MD5相对MD4所作的改进:</P>
<P> 1. 增加了第四轮;</P>
<P> 2. 每一步均有唯一的加法常数;</P>
<P> 3.
为减弱第二轮中函数G的对称性从(X&Y)|(X&Z)|(Y&Z)变为(X&Z)|(Y&(~Z));</P>
<P> 4. 第一步加上了上一步的结果,这将引起更快的雪崩效应;</P>
<P> 5. 改变了第二轮和第三轮中访问消息子分组的次序,使其更不相似;</P>
<P> 6. 近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应。各轮的位移量互不相同。
<BR><BR><BR></P></BLOCKQUOTE></TD></TR>
<TR>
<TD class=p4 vAlign=top width="50%">
<BLOCKQUOTE>原作者:不详<BR>来 源:化境编程界<BR>共有3463位读者阅读过此文<BR>【<A
href="http://bbs.aspsky.net/list.asp?boardid=1">发表评论</A>】
</BLOCKQUOTE></TD>
<TD class=p4 vAlign=top width="50%">
<P>
<LI><FONT color=#0772b1>上篇文章</FONT>:<A
href="http://www.aspsky.net/article/list.asp?id=2723">MD5算法研究(1)</A>
<BR>
<LI><FONT color=#0772b1>下篇文章</FONT>:<A
href="http://www.aspsky.net/article/list.asp?id=2725">URL欺骗</A>
</LI></TD></TR>
<TR>
<TD bgColor=#297dff class=p4 height=20 width="50%"><FONT
color=#ceffff> → 本周热门</FONT></TD>
<TD bgColor=#297dff class=p4 width="50%"><FONT color=#ceffff> →
相关文章</FONT></TD></TR>
<TR>
<TD bgColor=#586011 colSpan=2 height=1><SPACER type="block"
width="1"></TD></TR>
<TR>
<TD colSpan=2 height=7></TD></TR>
<TR>
<TD class=p4 vAlign=top width="50%">
<LI><A href="http://www.aspsky.net/article/list.asp?id=1510"
target=_top title="SQL Server 7.0 入门(一)">SQL Server 7.0
入门(...</A>[<FONT color=red>7239</FONT>]<BR>
<LI><A href="http://www.aspsky.net/article/list.asp?id=1540"
target=_top title=PHP4实际应用经验篇(1)>PHP4实际应用经验篇(1)</A>[<FONT
color=red>7135</FONT>]<BR>
<LI><A href="http://www.aspsky.net/article/list.asp?id=1536"
target=_top
title=无组件文件上传代码实例(支持多文件上传及文件和input域混合上传)>无组件文件上传代码实例(支持多文件上...</A>[<FONT
color=red>6029</FONT>]<BR>
<LI><A href="http://www.aspsky.net/article/list.asp?id=2557"
target=_top title=树型结构在ASP中的简单解决>树型结构在ASP中的简单解决</A>[<FONT
color=red>5757</FONT>]<BR>
<LI><A href="http://www.aspsky.net/article/list.asp?id=1545"
target=_top title=PHP4实际应用经验篇(6)>PHP4实际应用经验篇(6)</A>[<FONT
color=red>5599</FONT>]<BR>
<LI><A href="http://www.aspsky.net/article/list.asp?id=2563"
target=_top title=一个老个写的无组件上传>一个老个写的无组件上传</A>[<FONT
color=red>5013</FONT>]<BR>
<LI><A href="http://www.aspsky.net/article/list.asp?id=1542"
target=_top title=PHP4实际应用经验篇(3)>PHP4实际应用经验篇(3)</A>[<FONT
color=red>4731</FONT>]<BR></LI></TD>
<TD class=p4 vAlign=top width="50%">
<LI><A
href="http://www.aspsky.net/article/list.asp?id=2724">MD5算法研究(2)</A><BR>
<LI><A
href="http://www.aspsky.net/article/list.asp?id=2723">MD5算法研究(1)</A><BR></LI></TD></TR>
<TR>
<TD colSpan=2 height=7></TD></TR></TBODY></TABLE>
<TD bgColor=#297dff width=1> </TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=755>
<TBODY>
<TR>
<TD bgColor=#297dff height=1><SPACER type="block"
width="1"></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=755>
<TBODY>
<TR>
<TD align=middle height=30></TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=755>
<TBODY>
<TR>
<TD align=middle class=p2 width="100%">
<TABLE border=0 cellPadding=0 cellSpacing=0 width=755>
<TBODY>
<TR>
<TD align=middle class=p2 width="100%">
<P align=center><A
href="http://www.aspsky.net/produce/index.asp">客户服务</A> -- <A
href="http://www.aspsky.net/aspads.asp">广告合作</A> -- <A
href="http://www.aspsky.net/about.asp">关于本站</A> -- <A
href="http://www.aspsky.net/tell.asp">联系方法</A><BR><BR>动网先锋版权所有 <FONT
face=Verdana, size=1 Arial, Helvetica, sans-serif>Copyright ©
2000-2001 <B>AspSky<FONT color=#cc0000>.Net</FONT></B>, All Rights
Reserved .</FONT>
</P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -