MD5

来源:互联网 发布:淘宝人工客服在哪 编辑:程序博客网 时间:2024/04/27 18:50

MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和c语言源代码在Internet RFC 1321中有详细的描述(http://www.ietf.org/rfc/rfc1321.txt),这是一份最权威的文档,由Ronald L. Rivest在1992年8月向IETF提交。

 

MD5一度被广泛应用于安全领域。但是由于MD5的弱点被不断发现以及计算机能力不断的提升,现在已经可以构造两个具有相同MD5的信息,使本算法不再适合当前的安全环境。目前,MD5计算广泛应用于错误检查。例如在一些BitTorrent下载中,软件通过计算MD5和检验下载到的碎片的完整性。

 

2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。

令世界顶尖密码学家想象不到的是,破解MD5之后,2005年2月,王小云教授又破解了另一国际密码SHA-1。因为SHA-1在美国等国际社会有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。换句话说,王小云的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。

 

以上的关于MD5的简单介绍,关于MD5的具体实现没必要深入了解,但需要知道的是MD5的两个特性

1、可以加密任意长度的字符串,MD5是散列加密技术,所谓的散列加密就是无论你的输入字符串是什么,有多长,加密后都变成唯一的定长的加密串,MD5加密后的密串长度有16位的和32位两种

2、不可逆性,MD5是Hash加密算法,MD5密码实际上就是被加密数据的Hash值,Hash加密算法都是不可逆的

 

.net的using System.Security.Cryptography提供了一个MD5抽象类,MSDN在线上有具体的Example代码

 

以下是在MSDN Example基础上扩展的范例代码


网上的相关代码基本上也是从MSDN在线的Example而来的,以上范例代码与Example的区别在于提供了16位MD5的生成功能

 

参考资料:

 

百度百科 MD5
http://baike.baidu.com/view/7636.htm

 

维基百科 MD5
http://zh.wikipedia.org/w/index.php?title=MD5&variant=zh-cn

 

ASP.NET with C#使用md5,sha1加密初探(10月21日首发)
http://dev.csdn.net/article/44/44680.shtm

 

MSDN MD5类
http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.md5(VS.80).aspx

 

.net C#md5加密类
http://www.cnblogs.com/caizhimin816/archive/2008/06/12/1218436.html

 

C# MD5-16位加密实例,32位加密实例(两种方法)

http://www.cnblogs.com/konooo/archive/2009/01/22/1379920.html

 

MD5在线查询
http://www.cmd5.com/

 

原创粉丝点击