当前位置:主页   - 电脑 - 程序设计 - C#
MD5算法之C#程序 MD5算法描述
来源:网络   作者:   更新时间:2012-08-09
收藏此页】    【字号    】    【打印】    【关闭

  当我要写一个MD5算法的程序时,发现中英文的语言描述都有一些不确切的地方,某些个细节

  讲得不清楚,或者说很费解。最后不得不拿出C语言的源程序来调试,这对于理解算法是很不

  利的。于是就总结了一下我摸索到的一些要点。

  1.来历

  MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laboratory

  for computer science和rsa data security inc的ronald l. rivest开发出来,

  经md2、md3和md4发展而来。 http://www.ietf.org/rfc/rfc1321.txt ,是一份最权威的文档,

  由ronald l. rivest在1992年8月向ieft提交。

  2.用途

  MD5的作用是对一段信息(message)生成信息摘要(message-digest),该摘要对该信息具有

  唯一性,可以作为数字签名。用于验证文件的有效性(是否有丢失或损坏的数据),对用户

  密码的加密,在哈希函数中计算散列值。

  3.特点

  输入一个任意长度的字节串,生成一个128位的整数。由于算法的某些不可逆特征,在加密应用

  上有较好的安全性。并且,MD5算法的使用不需要支付任何版权费用。

  4.说明

  唯一性和不可逆性都不是绝对的,从理论上分析是一种多对一的关系,但两个不同的信息产生

  相同摘要的概率很小。不可逆是指从输出反推输入所需的运算量和计算时间太大,使用穷搜字

  典的方法又需要太多的存储空间。

  5.算法描述

  算法输入是一个字节串,每个字节是8个bit.

  算法的执行分为以下几个步骤:

  第一步,补位:

  MD5算法先对输入的数据进行补位,使得数据的长度(以byte为单位)对64求余的结果是56。

  即数据扩展至LEN=K*64+56个字节,K为整数。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明