<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>蓝色的微笑</title><link>http://other.mblogger.cn/posaidong/</link><description>Bluesmile Online</description><dc:language>zh-CHS</dc:language><generator>RSS Generated by MBlogger Blogs</generator><item><dc:creator>蓝色的微笑</dc:creator><title>MD5算法研究</title><link>http://other.mblogger.cn/posaidong/posts/183068.aspx</link><pubDate>Thu, 19 Jan 2006 10:08:00 GMT</pubDate><guid>http://other.mblogger.cn/posaidong/posts/183068.aspx</guid><wfw:comment>http://other.mblogger.cn/posaidong/comments/183068.aspx</wfw:comment><comments>http://other.mblogger.cn/posaidong/posts/183068.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://other.mblogger.cn/posaidong/comments/commentRss/183068.aspx</wfw:commentRss><trackback:ping>http://other.mblogger.cn/posaidong/trackback.aspx?ID=183068</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的全称是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Message-Digest Algorithm 5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;（信息&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;-&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;摘要算法），在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;90&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年代初由&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MIT Laboratory for Computer Science&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;RSA Data Security Inc&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Ronald L. Rivest&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;开发出来，经&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD3&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;压缩&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;成一种保密的格式（就是把一个任意长度的字节串变换成一定长的大整数）。不管是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;还是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，它们都需要获得一个随机长度的信息并产生一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;128&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位的信息摘要。虽然这些算法的结构或多或少有些相似，但&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的设计与&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;完全不同，那是因为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;8&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位机器做过设计优化的，而&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;却是面向&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;32&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位的电脑。这三个算法的描述和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;语言源代码在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Internet RFCs 1321&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;中有详细的描述（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;http://www.ietf.org/rfc/rfc1321.txt&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;），这是一份最权威的文档，由&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Ronald L. Rivest&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1992&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;8&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;月向&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;IEFT&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;提交。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Rivest&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1989&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年开发出&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法。在这个算法中，首先对信息进行数据补位，使信息的字节长度是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;16&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的倍数。然后，以一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;16&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Rogier&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Chauvaud&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;发现如果忽略了检验和将产生&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;冲突。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法的加密后结果是唯一的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;--&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;既没有重复。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　为了加强算法的安全性，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Rivest&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1990&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年又开发出&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法同样需要填补信息以确保信息的字节长度加上&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;448&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;后能被&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;512&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;整除（信息字节长度&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;mod 512 = 448&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;）。然后，一个以&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;64&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位二进制表示的信息的最初长度被添加进来。信息被处理成&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;512&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Damg?rd/Merkle&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;迭代结构的区块，而且每个区块要通过三个不同步骤的处理。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Den Boer&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Bosselaers&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;以及其他人很快的发现了攻击&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;版本中第一步和第三步的漏洞。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Dobbertin&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;向大家演示了如何利用一部普通的个人电脑在几分钟内找到&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;完整版本中的冲突（这个冲突实际上是一种漏洞，它将导致对不同的内容进行加密却可能得到相同的加密后结果）。毫无疑问，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;就此被淘汰掉了。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　尽管&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法在安全上有个这么大的漏洞，但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;以外，其中比较有名的还有&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;SHA-1&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;RIPE-MD&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;以及&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HAVAL&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;等。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　一年以后，即&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1991&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Rivest&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;开发出技术上更为趋近成熟的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法。它在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的基础上增加了&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;安全&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;-&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;带子&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Safety-Belts&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;）的概念。虽然&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;比&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;稍微慢一些，但却更为安全。这个算法很明显的由四个和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;设计有少许不同的步骤组成。在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法中，信息&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;-&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;摘要的大小和填充的必要条件与&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;完全相同。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Den Boer&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Bosselaers&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;曾发现&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法中的假冲突（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Pseudo-Collisions&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;），但除此之外就没有其他被发现的加密后结果了。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Van Oorschot&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Wiener&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;曾经考虑过一个在散列中暴力搜寻冲突的函数（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Brute-Force Hash Function&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;），而且他们猜测一个被设计专门用来搜索&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;冲突的机器（这台机器在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1994&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年的制造成本大约是一百万美元）可以平均每&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;24&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;天就找到一个冲突。但单从&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1991&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年到&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;2001&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年这&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;10&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;年间，竟没有出现替代&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD6&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;或被叫做其他什么名字的新算法这一点，我们就可以看出这个瑕疵并没有太多的影响&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的安全性。上面所有这些都不足以成为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的在实际应用中的问题。并且，由于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法的使用不需要支付任何版权费用的，所以在一般的情况下（非绝密应用领域。但即便是应用在绝密领域内，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;也不失为一种非常优秀的中间技术），&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;怎么都应该算得上是非常安全的了。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　算法的应用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的典型应用是对一段信息（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Message&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;）产生信息摘要（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Message-Digest&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;），以防止被篡改。比如，在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;UNIX&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;下有很多软件在下载的时候都有一个文件名相同，文件扩展名为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;.md5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的文件，在这个文件中通常只有一行文本，大致结构如：&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　这就是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;tanajiya.tar.gz&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;文件的数字签名。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;将整个文件当作一个大文本信息，通过其不可逆的字符串变换算法，产生了这个唯一的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;信息摘要。如果在以后传播这个文件的过程中，无论文件的内容发生了任何形式的改变（包括人为修改或者下载过程中线路不稳定引起的传输错误等），只要你对这个文件重新计算&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;时就会发现信息摘要不相同，由此可以确定你得到的只是一个不正确的文件。如果再有一个第三方的认证机构，用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;还可以防止文件作者的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;抵赖&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，这就是所谓的数字签名应用。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;还广泛用于加密和解密技术上。比如在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;UNIX&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;系统中用户的密码就是以&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;（或其它类似的算法）经加密后存储在文件系统中。当用户登录的时候，系统把用户输入的密码计算成&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;值，然后再去和保存在文件系统中的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;值进行比较，进而确定输入的密码是否正确。通过这样的步骤，系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道，而且还在一定程度上增加了密码被破解的难度。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　正是因为这个原因，现在被黑客使用最多的一种破译密码的方法就是一种被称为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;跑字典&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的方法。有两种方法得到字典，一种是日常搜集的用做密码的字符串表，另一种是用排列组合方法生成的，先用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;程序计算出这些字典项的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;值，然后再用目标的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;值在这个字典中检索。我们假设密码的最大长度为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;8&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位字节（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;8 Bytes&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;），同时密码只能是字母和数字，共&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;26+26+10=62&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;个字符，排列组合出的字典的项数则是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;P(62,1)+P(62,2)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;&amp;#8230;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;.+P(62,8)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，那也已经是一个很天文的数字了，存储这个字典就需要&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;TB&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;级的磁盘阵列，而且这种方法还有一个前提，就是能获得目标账户的密码&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;值的情况下才可以。这种加密技术被广泛的应用于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;UNIX&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;系统中，这也是为什么&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;UNIX&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;系统比一般操作系统更为坚固一个重要原因。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　算法描述&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　对&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法简要的叙述可以为：&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;以&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;512&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位分组来处理输入的信息，且每一分组又被划分为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;16&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;32&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位子分组，经过了一系列的处理后，算法的输出由四个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;32&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位分组组成，将这四个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;32&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位分组级联后将生成一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;128&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位散列值。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　在&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法中，首先需要对信息进行填充，使其字节长度对&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;512&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;求余的结果等于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;448&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;。因此，信息的字节长度（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Bits Length&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;）将被扩展至&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;N*512+448&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，即&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;N*64+56&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;个字节（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Bytes&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;），&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;N&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;为一个正整数。填充的方法如下，在信息的后面填充一个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和无数个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;0&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，直到满足上面的条件时才停止用&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;0&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;对信息的填充。然后，在在这个结果后面附加一个以&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;64&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位二进制表示的填充前信息长度。经过这两步的处理，现在的信息字节长度&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;=N*512+448+64=(N+1)*512&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，即长度恰好是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;512&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;中有四个&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;32&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位被称作链接变量（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Chaining Variable&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;）的整数参数，他们分别为：&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;A=0x01234567&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;B=0x89abcdef&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;C=0xfedcba98&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;D=0x76543210&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　当设置好这四个链接变量后，就开始进入算法的四轮循环运算。循环的次数是信息中&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;512&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;位信息分组的数目。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　将上面四个链接变量复制到另外四个变量中：&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;A&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;到&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;a&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;B&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;到&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;b&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;到&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;D&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;到&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;d&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　主循环有四轮（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;只有三轮），每轮循环都很相似。第一轮进行&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;16&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;次操作。每次操作对&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;a&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;b&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;d&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;中的其中三个作一次非线性函数运算，然后将所得结果加上第四个变量，文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数，并加上&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;a&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;b&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;或&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;d&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;中之一。最后用该结果取代&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;a&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;b&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;或&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;d&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;中之一。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;以一下是每次操作中用到的四个非线性函数（每轮一个）。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;F(X,Y,Z) =(X&amp;amp;Y)|((~X)&amp;amp;Z) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;G(X,Y,Z) =(X&amp;amp;Z)|(Y&amp;amp;(~Z)) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;H(X,Y,Z) =X^Y^Z &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;I(X,Y,Z)=Y^(X|(~Z)) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是与，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;|&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是或，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;~&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是非，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;^&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是异或）&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　这四个函数的说明：如果&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;X&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Y&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Z&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的对应位是独立和均匀的，那么结果的每一位也应是独立和均匀的。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;F&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是一个逐位运算的函数。即，如果&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;X&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，那么&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Y&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;，否则&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Z&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;。函数&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;H&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是逐位奇偶操作符。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;假设&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Mj&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;表示消息的第&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;j&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;个子分组（从&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;0&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;到&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;15&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;），&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;FF(a,b,c,d,Mj,s,ti)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;a=b+((a+(F(b,c,d)+Mj+ti);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;GG(a,b,c,d,Mj,s,ti)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;a=b+((a+(G(b,c,d)+Mj+ti);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;HH(a,b,c,d,Mj,s,ti)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;a=b+((a+(H(b,c,d)+Mj+ti);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;II(a,b,c,d,Mj,s,ti)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;表示&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;a=b+((a+(I(b,c,d)+Mj+ti); &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　这四轮（&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;64&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;步）是：&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　第一轮&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(a,b,c,d,M0,7,0xd76aa478) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(d,a,b,c,M1,12,0xe8c7b756) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(c,d,a,b,M2,17,0x242070db) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(b,c,d,a,M3,22,0xc1bdceee) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(a,b,c,d,M4,7,0xf57c0faf) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(d,a,b,c,M5,12,0x4787c62a) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(c,d,a,b,M6,17,0xa8304613) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(b,c,d,a,M7,22,0xfd469501) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(a,b,c,d,M8,7,0x698098d8) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(d,a,b,c,M9,12,0x8b44f7af) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(c,d,a,b,M10,17,0xffff5bb1) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(b,c,d,a,M11,22,0x895cd7be) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(a,b,c,d,M12,7,0x6b901122) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(d,a,b,c,M13,12,0xfd987193) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(c,d,a,b,M14,17,0xa679438e) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;FF(b,c,d,a,M15,22,0x49b40821) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　第二轮&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(a,b,c,d,M1,5,0xf61e2562) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(d,a,b,c,M6,9,0xc040b340) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(c,d,a,b,M11,14,0x265e5a51) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(b,c,d,a,M0,20,0xe9b6c7aa) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(a,b,c,d,M5,5,0xd62f105d) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(d,a,b,c,M10,9,0x02441453) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(c,d,a,b,M15,14,0xd8a1e681) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(b,c,d,a,M4,20,0xe7d3fbc8) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(a,b,c,d,M9,5,0x21e1cde6) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(d,a,b,c,M14,9,0xc33707d6) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(c,d,a,b,M3,14,0xf4d50d87) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(b,c,d,a,M8,20,0x455a14ed) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(a,b,c,d,M13,5,0xa9e3e905) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(d,a,b,c,M2,9,0xfcefa3f8) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(c,d,a,b,M7,14,0x676f02d9) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;GG(b,c,d,a,M12,20,0x8d2a4c8a) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　第三轮&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(a,b,c,d,M5,4,0xfffa3942) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(d,a,b,c,M8,11,0x8771f681) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(c,d,a,b,M11,16,0x6d9d6122) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(b,c,d,a,M14,23,0xfde5380c) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(a,b,c,d,M1,4,0xa4beea44) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(d,a,b,c,M4,11,0x4bdecfa9) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(c,d,a,b,M7,16,0xf6bb4b60) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(b,c,d,a,M10,23,0xbebfbc70) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(a,b,c,d,M13,4,0x289b7ec6) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(d,a,b,c,M0,11,0xeaa127fa) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(c,d,a,b,M3,16,0xd4ef3085) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(b,c,d,a,M6,23,0x04881d05) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(a,b,c,d,M9,4,0xd9d4d039) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(d,a,b,c,M12,11,0xe6db99e5) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(c,d,a,b,M15,16,0x1fa27cf8) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;HH(b,c,d,a,M2,23,0xc4ac5665) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　第四轮&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(a,b,c,d,M0,6,0xf4292244) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(d,a,b,c,M7,10,0x432aff97) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(c,d,a,b,M14,15,0xab9423a7) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(b,c,d,a,M5,21,0xfc93a039) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(a,b,c,d,M12,6,0x655b59c3) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(d,a,b,c,M3,10,0x8f0ccc92) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(c,d,a,b,M10,15,0xffeff47d) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(b,c,d,a,M1,21,0x85845dd1) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(a,b,c,d,M8,6,0x6fa87e4f) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(d,a,b,c,M15,10,0xfe2ce6e0) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(c,d,a,b,M6,15,0xa3014314) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(b,c,d,a,M13,21,0x4e0811a1) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(a,b,c,d,M4,6,0xf7537e82) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(d,a,b,c,M11,10,0xbd3af235) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(c,d,a,b,M2,15,0x2ad7d2bb) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;II(b,c,d,a,M9,21,0xeb86d391) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　常数&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;ti&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;可以如下选择：&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　在第&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;i&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;步中，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;ti&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;4294967296*abs(sin(i))&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的整数部分，&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;i&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的单位是弧度。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(4294967296&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;等于&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;2&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;32&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;次方&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;) &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;所有这些完成之后，将&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;A&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;B&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;D&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;分别加上&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;a&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;b&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;c&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;d&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;。然后用下一分组数据继续运行算法，最后的输出是&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;A&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;B&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;、&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;C&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;和&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;D&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的级联。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　当你按照我上面所说的方法实现&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法以后，你可以用以下几个信息对你做出来的程序作一个简单的测试，看看程序有没有错误。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MD5 ("") = d41d8cd98f00b204e9800998ecf8427e &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0 &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") = d174ab98d277d9f5a5611c2c9f419d9f &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;MD5 ("123456789012345678901234567890123456789012345678901234567890123456789 01234567890") = 57edf4a22be3c955ac49da2e2107b67a &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　如果你用上面的信息分别对你做的&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;算法实例做测试，最后得出的结论和标准答案完全一样，那我就要在这里象你道一声祝贺了。要知道，我的程序在第一次编译成功的时候是没有得出和上面相同的结果的。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的安全性&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD5&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;相对&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;MD4&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;所作的改进：&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;1. &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;增加了第四轮；&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;2. &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;每一步均有唯一的加法常数；&lt;/SPAN&gt; &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;3. &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;为减弱第二轮中函数&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;G&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;的对称性从&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(X&amp;amp;Y)|(X&amp;amp;Z)|(Y&amp;amp;Z)&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;变为&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;(X&amp;amp;Z)|(Y&amp;amp;(~Z))&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;；&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;4. &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;第一步加上了上一步的结果，这将引起更快的雪崩效应；&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;5. &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;改变了第二轮和第三轮中访问消息子分组的次序，使其更不相似；&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;　　　&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;6. &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"&gt;近似优化了每一轮中的循环左移位移量以实现更快的雪崩效应。各轮的位移量互不相同。&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><dc:creator>蓝色的微笑</dc:creator><title>用openssl进行SSL编程</title><link>http://other.mblogger.cn/posaidong/posts/179625.aspx</link><pubDate>Wed, 04 Jan 2006 12:32:00 GMT</pubDate><guid>http://other.mblogger.cn/posaidong/posts/179625.aspx</guid><wfw:comment>http://other.mblogger.cn/posaidong/comments/179625.aspx</wfw:comment><comments>http://other.mblogger.cn/posaidong/posts/179625.aspx#feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://other.mblogger.cn/posaidong/comments/commentRss/179625.aspx</wfw:commentRss><trackback:ping>http://other.mblogger.cn/posaidong/trackback.aspx?ID=179625</trackback:ping><description>&lt;P&gt;主要介绍openssl进行SSL通信的一些函数以及过程，主要是初始化过程，至于数据的接收以及后续处理可以具体问题具体分析。&lt;BR&gt;load所有的SSL算法&lt;BR&gt;OpenSSL_add_ssl_algorithms();&lt;BR&gt;建立SSL所用的method&lt;BR&gt;SSL_METHOD *meth=SSLv23_method();&lt;BR&gt;初始化上下文情景&lt;BR&gt;SSL_CTX *ctx=SSL_CTX_new(meth);&lt;BR&gt;ret-&amp;gt;quiet_shutdown=1;&lt;BR&gt;默认的是ret-&amp;gt;quiet_shutdown=0;他相当于SSL_set_shutdown函数将参数设置为SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN&lt;BR&gt;当设置为1时，假如关闭后，不通知对方，这样不适合TLS标准&lt;BR&gt;SSL_CTX_set_quiet_shutdown(ctx,1); &lt;BR&gt;ctx-&amp;gt;options|=SSL_OP_ALL，SSL/TLS有几个公认的bug,这样设置会使出错的可能更小;&lt;BR&gt;SSL_CTX_set_options(ctx,SSL_OP_ALL); 设置cache的大小，默认的为1024*20=20000，这个也就是可以存多少个session_id，一般都不需要更改的。假如为0的话将是无限;&lt;BR&gt;SSL_CTX_sess_set_cache_size(ctx,128);&lt;BR&gt;SSL_CTX_load_verify_locations用于加载受信任的CA证书，CAfile如果不为NULL，则他指向的文件包含PEM编码格式的一个或多个证书，可以用e.g.来简要介绍证书内容;&lt;BR&gt;CApath如果不为NULL，则它指向一个包含PEM格式的CA证书的目录，目录中每个文件包含一份CA证书，文件名是证书中CA名的HASH值;&lt;BR&gt;可以用c-rehash来建立该目录，如cd /some/where/certs（包含了很多可信任的CA证书） c_rehash .。返回一成功，0 失败。&lt;BR&gt;SSL_CTX_set_default_verify_paths找寻默认的验证路径，在这里肯定找不到的。&lt;BR&gt;这里主要set cert_store&lt;BR&gt;char *CAfile=NULL,*CApath=NULL;&lt;BR&gt;SSL_CTX_load_verify_locations(ctx,CAfile,CApath);&lt;BR&gt;当需要客户端验证的时候，服务器把CAfile里面的可信任CA证书发往客户端。if(CAfile !=NULL )SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(CAfile));&lt;BR&gt;设置最大的验证用户证书的上级数。 SSL_CTX_set_verify_depth(ctx,10);&lt;BR&gt;当使用RSA算法鉴别的时候，会有一个临时的DH密钥磋商发生。这样会话数据将用这个临时的密钥加密，而证书中的密钥中做为签名。&lt;BR&gt;所以这样增强了安全性，临时密钥是在会话结束消失的，所以就是获取了全部信息也无法把通信内容给解密出来。&lt;BR&gt;static unsigned char dh512_p[]={ 0xDA,0x58,0x3C,0x16,0xD9,0x85,0x22,0x89,0xD0,0xE4,0xAF,0x75,&lt;BR&gt;0x6F,0x4C,0xCA,0x92,0xDD,0x4B,0xE5,0x33,0xB8,0x04,0xFB,0x0F, 0xED,0x94,0xEF,0x9C,0x8A,0x44,0x03,0xED,0x57,0x46,0x50,0xD3, 0x69,0x99,0xDB,0x29,0xD7,0x76,0x27,0x6B,0xA2,0xD3,0xD4,0x12, 0xE2,0x18,0xF4,0xDD,0x1E,0x08,0x4C,0xF6,0xD8,0x00,0x3E,0x7C, 0x47,0x74,0xE8,0x33, };&lt;BR&gt;static unsigned char dh512_g[]={0x02,};&lt;BR&gt;DH *dh=DH_new();&lt;BR&gt;dh-&amp;gt;p=BN_bin2bn(dh512_p,sizeof(dh512_p),NULL);&lt;BR&gt;dh-&amp;gt;g=BN_bin2bn(dh512_g,sizeof(dh512_g),NULL);&lt;BR&gt;SSL_CTX_set_tmp_dh(ctx,dh);&lt;BR&gt;下面加载服务器的证书和私钥，私钥可以和证书在一个文件之中。判断私钥和证书是否匹配。&lt;BR&gt;char *s_cert_file="server.pem";&lt;BR&gt;char *s_key_file=NULL;&lt;BR&gt;SSL_CTX_use_certificate_file(ctx,s_cert_file,SSL_FILETYPE_PEM);&lt;BR&gt;获取私钥之前先把私钥的密码给写上&lt;BR&gt;char *pKeyPasswd="serve";&lt;BR&gt;SSL_CTX_set_default_passwd_cb_userdata(ctx, pKeyPasswd);&lt;BR&gt;SSL_CTX_use_PrivateKey_file(ctx,s_cert_file,SSL_FILETYPE_PEM);&lt;BR&gt;SSL_CTX_check_private_key(ctx);&lt;BR&gt;设置一个临时的RSA，在出口算法中，有规定需要这么做的。&lt;BR&gt;RSA *rsa=RSA_generate_key(512,RSA_F4,NULL,NULL);&lt;BR&gt;SSL_CTX_set_tmp_rsa(ctx,rsa);&lt;BR&gt;用于设置验证方式。s_server_verify是以下值的逻辑或&lt;BR&gt;SSL_VERIFY_NONE表示不验证，SSL_VERIFY_PEER用于客户端时要求服务器必须提供证书，用于服务器时服务器会发出证书请求消息要求客户端提供证书，但是客户端也可以不提供 SSL_VERIGY_FAIL_IF_NO_PEER_CERT只适用于服务器且必须提供证书。他必须与SSL_VERIFY_PEER一起使用. 当SSL_VERIFY_PEER被设置时verify_callback可以控制验证的行为。任何一个验证失败信息都会终止TLS连接&lt;BR&gt;static int s_server_verify=SSL_VERIFY_NONE;&lt;BR&gt;SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,NULL/*verify_callback*/);&lt;BR&gt;为了从自己本身的程序中产生一个session_id，所以要给本程序设定一个session_id_context，否则程序从外部获取session_id_context来得到session_id，那很容易产生错误&lt;BR&gt;长度不能大于SSL_MAX_SSL_SESSION_ID_LENGTH&lt;BR&gt;const unsigned char s_server_session_id_context[100]="1111asdfd";&lt;BR&gt;SSL_CTX_set_session_id_context(ctx,s_server_session_id_context,sizeof s_server_session_id_context);&lt;BR&gt;return ctx; &lt;BR&gt;作者Blog：&lt;A href="http://blog.csdn.net/sagely/"&gt;http://blog.csdn.net/sagely/&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;</description></item><item><dc:creator>蓝色的微笑</dc:creator><title>VMware下Linux上网</title><link>http://other.mblogger.cn/posaidong/posts/178616.aspx</link><pubDate>Fri, 30 Dec 2005 09:54:00 GMT</pubDate><guid>http://other.mblogger.cn/posaidong/posts/178616.aspx</guid><wfw:comment>http://other.mblogger.cn/posaidong/comments/178616.aspx</wfw:comment><comments>http://other.mblogger.cn/posaidong/posts/178616.aspx#feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://other.mblogger.cn/posaidong/comments/commentRss/178616.aspx</wfw:commentRss><trackback:ping>http://other.mblogger.cn/posaidong/trackback.aspx?ID=178616</trackback:ping><description>&lt;FONT face=Arial&gt;1。找到你用来上网的拨号连接，设定为局域网内共享连接。&lt;BR&gt;2。注意到你的局域网连接应该多了两个，这是vmware给装上的，一个是vmnet1,一个是&lt;BR&gt;vmnet8,其中vmnet1是给bridged用的，vmnet8是给NAT用的，局域网上网用brideged,&lt;BR&gt;拨号上网用NAT,所以我只关心vmnet8;默认的设定就挺好，不要乱改，除非你是老鸟。&lt;BR&gt;3。如果你在装linux时已经选了NAT(如果你是局域网上网，选brideged)那么直接power on&lt;BR&gt;否则在设定里设成NAT。&lt;BR&gt;4。进入X,用network configuration配置，基本上不用该，都用自动获得就好了。&lt;BR&gt;5。到xp的C:\WINDOWS\system32目录下找到vmnetnat.conf文件，里面有&lt;BR&gt;gateway address，记下来，再进linux里ping这个地址，如果成功，恭喜基本上好了&lt;BR&gt;其实这个地址就是虚拟局域网的网关；如果不成功，八成是你手工改了地址，改回自动&lt;BR&gt;就好了；如果还不行，看看你的xp的任务管理器有没有VMNAT.exe和VMNetDHCP.exe&lt;BR&gt;这是负责分配ip的程序，如果没有，重装vmware :( 。&lt;BR&gt;6。试试ping新浪一把，咦，不通？其实很多ADSL地提供者都要你使用dns，没关系&lt;BR&gt;在xp的command prompt下ipconfig /all,找到你的PPP中dns信息，在linux下&lt;BR&gt;network configuration中添上相同的dns,搞定了吧；其实仔细观察ipconfig&lt;BR&gt;地输出内容，你也可以知道关于虚拟局域网的大部分信息了。&lt;/FONT&gt;</description></item><item><dc:creator>蓝色的微笑</dc:creator><title>没有PARTY的圣诞</title><link>http://other.mblogger.cn/posaidong/posts/176349.aspx</link><pubDate>Wed, 21 Dec 2005 12:05:00 GMT</pubDate><guid>http://other.mblogger.cn/posaidong/posts/176349.aspx</guid><wfw:comment>http://other.mblogger.cn/posaidong/comments/176349.aspx</wfw:comment><comments>http://other.mblogger.cn/posaidong/posts/176349.aspx#feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://other.mblogger.cn/posaidong/comments/commentRss/176349.aspx</wfw:commentRss><trackback:ping>http://other.mblogger.cn/posaidong/trackback.aspx?ID=176349</trackback:ping><description>&lt;P&gt;昨天跟房东通过电话了,本周日-也就是2005圣诞节搬家.&lt;/P&gt;
&lt;P&gt;本来还想把新房多晾一个月,这下不得不提前入住了. 还好空置时间不算短,有一个多月了吧. 而且那边比较空旷,风大,有利于驱除装修污染.&lt;/P&gt;
&lt;P&gt;计划赶不上变化啊,前天还在计划圣诞活动,给小扁的圣诞礼物,现在其他都不用考虑了,周末前把新家打扫干净,煤气,电话都搞定,周末顺顺利利的把东西搬过去就是偶们送给彼此最好的圣诞礼物了.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><dc:creator>蓝色的微笑</dc:creator><title>NOKIA 7610玩机指令秘籍</title><link>http://other.mblogger.cn/posaidong/posts/172793.aspx</link><pubDate>Wed, 07 Dec 2005 22:19:00 GMT</pubDate><guid>http://other.mblogger.cn/posaidong/posts/172793.aspx</guid><wfw:comment>http://other.mblogger.cn/posaidong/comments/172793.aspx</wfw:comment><comments>http://other.mblogger.cn/posaidong/posts/172793.aspx#feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://other.mblogger.cn/posaidong/comments/commentRss/172793.aspx</wfw:commentRss><trackback:ping>http://other.mblogger.cn/posaidong/trackback.aspx?ID=172793</trackback:ping><description>&lt;P&gt;指令篇：&lt;/P&gt;
&lt;P&gt;S60系列智能手机使用的指令秘技可谓是少之又少，和NOKIA的普通手机不一样，普通手机的大多数密技在S60机器上都是无效的，比如那个开启半速率和全速率，节电模式、工程模式等都不可用。现在来向大家介绍几个7610上能用的密技： &lt;/P&gt;
&lt;P&gt;IMEI码：*#06# 。也就是我们所说的手机串号，几乎所以手机都适用，IMEI就是&amp;#8220;国际移动装备辨识码&amp;#8221;，IMEI=TAC+FAC+SNR+SP，其中TAC是批准型号码，共6位，FAC是最后组装地代码，共2位，但由于现在已经有JS已经能改串号了，所以NOKIA将所有的7、8位都改成00了，就是说已经看不出生产地了，SNR是序号，共6位，SP是备用码，就1位。&lt;/P&gt;
&lt;P&gt;手机版本信息： *#0000#。显示后一共会出现3行信息，第一行是手机软件当前版本，目前最新版本是V 4.0445.0ch，第二行是此版本软件发行日期，目前最新版的发布时间是04年5月11号，第三行是手机型号代码，大陆行货一般是RH-51。&lt;/P&gt;
&lt;P&gt;恢复出厂设置（软格机）：&amp;nbsp; *#7370#。这个命令一般是在手机处于错误或系统垃圾过多的情况下使用格机命令，格机前可以通过第三方软件或6600PC套件备份一下你的名片夹或需要的资料，格机时一定要保持电量充足，不要带充电器格机，格机时只显示&amp;#8220;NOKIA&amp;#8221;字样还有亮屏幕，没格完千万不要强迫关机和拔电池，以免造成严重后果，格机完成后重新输入时间，再恢复你的名片夹和资料就可以了，格机可以恢复一切原始设置，将C：盘内容全部清空，再写入新的系统信息，注意的是此格机不影响MMC卡内容。&lt;/P&gt;
&lt;P&gt;恢复出厂设置：*#7780#，等同于功能表设置&amp;#8212;&amp;#8212;手机设置&amp;#8212;&amp;#8212;常规&amp;#8212;&amp;#8212;原厂设定，注意此命令仅是恢复设置，不同于格机，恢复后名片夹、图片、文档等全部依然存在，只是设置还原了，有些朋友因设置错误而不知如何改回来就可以使用这个命令了。&lt;/P&gt;
&lt;P&gt;电子钱包初始化密码的指令：&amp;nbsp; *#7370925538#。很多朋友因忘记电子钱包密码而至今无法使用电子钱包，使用此命令后，可以将电子钱包密码初始化，就可以自己重新输入密码了，不过要注意的是此命令一但使用，电子钱包里所有数据全部丢失，切记。&lt;/P&gt;
&lt;P&gt;蓝牙设备查询码： *#2820#。可以查找到内置的蓝牙模块的设备编码，对一般人来说没有什么作用。&lt;/P&gt;
&lt;P&gt;以上的指令秘技有部分是需要输入锁码的，这里所说的锁码也就是手机密码，不过不要和SIM卡密码弄混了，手机锁码的设置是在：功能表&amp;#8212;&amp;#8212;设置&amp;#8212;&amp;#8212;安全性设置&amp;#8212;&amp;#8212;手机和SIM卡&amp;#8212;&amp;#8212;锁码，其初始锁码为：12345，只要需要输入锁码的地方默认值都是12345，更改过手机锁码的以新锁码为准。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;格机篇：&lt;/P&gt;
&lt;P&gt;格机一般是在手机垃圾文件太多，严重错误无法恢复或手机出现异常的情况下进行，格机将会把C：盘内容全部清空，再写入新的系统信息，所以格机前请先备份好自己所需要的数据和资料等。格机有三种格法：&lt;/P&gt;
&lt;P&gt;1、软格：在手机上输入 *#7370# 之后要求你输入锁码，初始密码是：12345，如果你更改过手机密码，那就是更改后的密码（不是SIM卡密码），之后出现白屏，只显示NOKIA字样，3~5分钟后就完成了，格完重新输入手机时间；&lt;/P&gt;
&lt;P&gt;2、硬格：先关机，在开机的同时按住拨号键、&amp;#8220;*&amp;#8221;键、&amp;#8220;3&amp;#8221;键，打开电源直到&amp;#8220;NOKIA&amp;#8221;字样出现，此过程不能松开任何一个按键，稍稍等几秒直至出现&amp;#8220;Formating&amp;#8230;&amp;#8230;/&amp;#8221;字样，这时方可松开按键。3~5分钟后系统格式化完成，手机自动重启并进入待机画面，重新输入手机时间；&lt;/P&gt;
&lt;P&gt;3、通过软件格：安装System Tools软件，里面有个格式化选项，可以不需要输入锁码来格机。&lt;/P&gt;
&lt;P&gt;以上格机有几点需要注意：保持电量绝对充足，格机途中不能企图关机，不能插充电器等，如违反了有可能造成烧机等严重的后果。还有硬格可能对机器硬件有点损伤，不是万不得以，机器无法开机的情况下不要使用硬格，还有一点要注意，格机后会使线路2消失，必须到KF刷机才能恢复。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;技巧篇：&lt;/P&gt;
&lt;P&gt;1、锁键盘，在待机画面时，按一次左功能键，在立刻按一次 * 键，即可锁闭键盘，在屏幕的右上方便会有一把钥匙的图标，解开键盘锁只要用相同的方法再按一次即可，键盘锁也可以通过按机器上方的电源开关键来实现，按一次开关键立刻放开，会出现选择菜单，里面就会有锁键盘的选项；&lt;/P&gt;
&lt;P&gt;&amp;nbsp;2、大家在使用拼音输入法的时候有时会有遇到同一个音节会有很多个字出现，多的时候可能要翻好几页，区别只是声调不同，如果打上音标的话，就会减少很多字的，而且还便于查找，方法就是先用拼音打出你要的字，如&amp;#8220;煮&amp;#8221;，用拼音就是&amp;#8220;zhu&amp;#8221;，这时候会出现很多&amp;#8220;zhu&amp;#8221;音的字，要翻很多页才能找到&amp;#8220;煮&amp;#8221;字，这时候只要按一下&amp;#8220;*&amp;#8221;键，在拼音后面就会出现声调，按一次换一个声调，按三次就出三声了，这样找起来就简单多了（不过熟悉笔画输入的朋友应该比我这个还快的）；&lt;/P&gt;
&lt;P&gt;3、关闭后台运行程序，有时候我们在使用NOKIA智能手机的时候，或多或少会出现当机、重启、程序无法响应的情况，不排除有软件或硬件冲突造成的系统错误，还有一些就是因运行很多程序在后台运行，却忘记关闭而造成的系统资源紧缺，毕竟智能手机的机体内存也就仅限于那么一点（这里指的是真正的机体内存，而不是机器的存储空间），具体操作方法，在普通待机画面时按住&amp;#8220;功能键&amp;#8221;2秒以上，就会出现当前后台正在运行的一些程序，其中那个手机标志的是永远在的，因为只要开机就有，那个程序就是你现在正在使用中的手机，通过摇杆的上下可以选择要打开或关闭的程序，按C键即可关闭当前选择的程序了，是不是很简单呢（不过通过第三方软件AppMan关闭后台程序更为方便）；&lt;/P&gt;
&lt;P&gt;4、&amp;#8220;偷拍&amp;#8221;，有的朋友想在拍照时取消拍照一瞬间出现的喀嚓声，你就可以在情景模式&amp;#8212;&amp;#8212;当前情景模式&amp;#8212;&amp;#8212;个性化选项&amp;#8212;&amp;#8212;警告音里，将&amp;#8220;警告音&amp;#8221;设置成关闭，就可以了，这样拍照时就取消喀嚓声了，不过在电池电量低警告、SeleQ删除文件，还有玩普通游戏时都会没有声音了；&lt;/P&gt;
&lt;P&gt;5、字符复制法，当编写一个短信或其他文本之类，想再写一遍，但又怕麻烦，就可以象PC上用鼠标将要复制的字拖成蓝色就可以复制了，在7610上的操作是将要复制的字符前按住笔型键，然后再拖动左右方向键，将要复制的的内容拖成蓝色，然后按左功能键的&amp;#8220;复制&amp;#8221;，等再次到需要粘贴的地方，按住笔型键，再按右功能键的&amp;#8220;粘贴&amp;#8221;即可完成复制；&lt;/P&gt;
&lt;P&gt;6、批量删除和批量复制法，有时候我们要删除大量消息或图片等文件的话，一个一个删除很是麻烦的，这时候可以按选项&amp;#8212;&amp;#8212;标记&amp;#8212;&amp;#8212;标记全部，全部的文件后面都会出现一个钩的符号，这时候再删除的话就会一次性全部删除了，还有一个是逐个标记法，就是在要删除文件的界面里按住笔型键，再按方向键上下就可以逐个选择标记，松开再进行同样的操作就是取消标记了，当然标记后一样可以进行批量复制或发送的；&lt;/P&gt;
&lt;P&gt;7、快速进入法，进入功能表以后，最上面的9个图标，也就是俗称的&amp;#8220;九宫格&amp;#8221;画面，这时候只要按键盘数字键的1~9就可以对应相应位置的快捷图标进入，但只对应最上面9个图标文件。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;缺点篇：&lt;/P&gt;
&lt;P&gt;1、时常短信报错。出现的现象就是发短信或收短信时有时会出现&amp;#8220;mec错误，程序将关闭&amp;#8221;的字样，然后短信就会被强制关闭，再进去有时好有时还会继续出现，很是烦人，这个缺点是几乎所有的NOKIA的智能手机都有会出现的，几率不同而已。&lt;/P&gt;
&lt;P&gt;解决方法：可以通过删除所有消息，还有发件箱、收件箱和草稿里所有信息来暂时解决，最好的办法还可以备份一下后格机。&lt;/P&gt;
&lt;P&gt;2、拨号识别不足。这个缺点可以说是几乎很多型号的手机都有这个现象，只能正确识别最后六位号码，比如你在电话本里记录一个人的号是13901022222，名字是张三，然后你拨电话拨错了号码，误拨成13810122222，这时候一样出现的人名是张三，这个就是拨号识别不足。&lt;/P&gt;
&lt;P&gt;解决方法：暂时无法解决。&lt;/P&gt;
&lt;P&gt;3、7610通过蓝牙向外无法发送MID、JAR等格式的文件。原因是NOKIA的版权保护政策，很傻的一个设计。&lt;/P&gt;
&lt;P&gt;解决方法：通过SeleQ软件，将这个文件的后缀改成其他类型的文件后缀就可以通过蓝牙正常发送了，收到的机器再通过SeleQ改回来就可以了。&lt;/P&gt;
&lt;P&gt;4、SIM卡消息没法直接查看。如果你以前使用的是很早的机型，所有的短消息都是存储在SIM卡中的话，将SIM卡插到7610等S60的机器中的话，将无法直接看到SIM卡的信息。&lt;/P&gt;
&lt;P&gt;解决方法：进入信息，按选项&amp;#8212;&amp;#8212;SIM卡信息，之后将要查阅的SIM卡信息复制到&amp;#8220;收件箱&amp;#8221;里就可以查看了。&lt;/P&gt;
&lt;P&gt;5、支持Java1.1程序将容性不好等。因为7610的Java是Midp 2.0版本的，现在网上大多的Java软件或游戏都是Midp 1.1版本的，7610的Java Midp 2.0向下兼容Midp 1.1的效果不是很好，很多Java的软件或游戏能安装上就是不能运行。&lt;/P&gt;
&lt;P&gt;解决方法：暂时没有。&lt;/P&gt;
&lt;P&gt;6、SIM名片夹人名不能在来电中识别等。这是个差强人意的设计，早在7650时代就没有实现，到现在还是这样的，如果电话簿是在SIM中的话，即使电话簿有这个人的号码，他的来电一样不显示他的名字，而只显示电话号码。&lt;/P&gt;
&lt;P&gt;解决方法：将SIM卡电话簿里的电话全部复制到手机的名片夹中即可，可以通过标记全部，然后一次性复制过去。&lt;/P&gt;
&lt;P&gt;7、部分7610漫游后不能接听移动以外的号码。持当地号码的人如果去外地，手机号码将漫游，这时候除了移动的全球通，动感地带，神州行等卡能接听到电话，联通的号、座机及小灵通均接听不到电话，这是个十分严重的Bug，我也是最近才听说，我的7610没有出现过，不过既然有人提出来了，我们就得重视一下，据说只有4.0424.4ch版本的机器会出现这个现象。&lt;/P&gt;
&lt;P&gt;解决方法：去NOKIA的客户服务中心将机器版本升级至最新版本，目前7610的最新版本是 V 4.0445.0ch。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;（完）&lt;/P&gt;</description></item></channel></rss>