MD5有哪些作用?

 

  MD5是什么?

  MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。

  1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。

  MD5有什么作用?

  典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在Unix下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:

  MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461

  这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:

  大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为司法机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。

时间: 2024-09-19 10:08:38

MD5有哪些作用?的相关文章

2.请求安全-- MD5的必要性以及实际应用场景

MD5的必要性以及实际应用场景 前言 MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现.将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2.MD3和MD4. PS:写这篇文章的本意是把我在工作中使用的MD5加密技巧分享出来,和大家一起交流,可能应为水平有限会有遗漏之处望大家包含,也请大家提出建议我会进一步完善. 1.MD5算法具有

Java生成MD5算法

原文:http://yilee.info/java-md5-algorithm.html D5即Message-Digest Algorithm 5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法. MD5算法的作用是让大容量信息在用数字签名软件签私人密匙前被"压缩"成一种保密的格式,将一个任意长度的"字节串"通过一个不可逆的字符串变换算法变换成一个128bit的大整数. 即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说

PHP中常用的字符串格式化函数总结_php技巧

字符串的格式化就是将字符串处理为某种特定的格式.通常用户从表单中提交给服务器的数据都是字符串的形式,为了达到期望的输出效果,就需要按照一定的格式处理这些字符串后再去使用.经常见到的字符串格式化函数如下图所示: 注意:在PHP中提供的字符串函数处理的字符串,大部分都不是在原字符串上修改,而是返回一个格式化后的新字符串. 一.取出空格和字符串填补函数 空格也是一个有效的字符,在字符串中也会占据一个位置.用户在表单输入数据时,经常在无意中会多输入一些无意义的空格.因此PHP脚本在接收到通过表单处理过来

ASP.NET中MD5和SHA1加密的几种方法

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2.md3和md4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是md2.md4还是md5,它们都需要获得一个随机长度的信息并产

ASP.NET中MD5与SHA1加密的几种方法

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2.md3和md4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是md2.md4还是md5,它们都需要获得一个随机长度的信息并产

MD5算法研究

算法 综述 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2.MD3和MD4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是MD2.MD4还是MD5,它们都需要获得一个随机长

MD5算法研究(1)

算法 综述 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2.MD3和MD4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是MD2.MD4还是MD5,它们都需要获得一个随机长

Java keytool工具的作用及使用方法[zz]

Keytool 是安全钥匙与证书的管理工具.它管理一个存储了私有钥匙和验证相应公共钥匙的与它们相关联的X.509 证书链的keystore(相当一个数据库). Keytool 是一个有效的安全钥匙和证书的管理工具. 它能够使用户使用数字签名来管理他们自己的私有/公共钥匙对,管理用来作自我鉴定的相关的证书,管理数据完整性和鉴定服务.它还能使用户在通信时缓存它们的公共钥匙. 一个证书是某一实体(个人,公司等)的数字签名,指出其他实体的公共钥匙(或其他信息)的详细的值.当数据被签名后,这个签名信息被用

使用MD5变换算法来防止穷举破译密码

换算|算法 MD5是在Web应用程序中最常用的密码加密算法.由于MD5是不可逆的,因而经过MD5计算得到后的密文,不能通过逆向算法得到原文. 回顾在Web应用程序中使用MD5加密文本密码的初衷,就是为了防止数据库中保存的密码不幸泄露后被直接获得.但攻击者不但拥有数据量巨大的密码字典,而且建立了很多MD5原文/密文对照数据库,能快速地找到常用密码的MD5密文,是破译MD5密文的高效途径.然而,MD5密文数据库所使用的是最常规的MD5加密算法:原文-->MD5-->密文.因此,我们可以使用变换的M