消息摘要算法及md5

消息摘要算法

介绍:

消息摘要算法的主要特征是加密过程不需要 密钥 ,并且经过加密的数据无法被 解密 ,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。(摘要可以比方为指纹,消息摘要算法就是要得到文件的唯一职位)

特点:

  • 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。
  • 一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。
  • 只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息,甚至根本就找不到任何与原信息相关的信息(不可逆性)。
  • 好的摘要算法,没有人能从中找到“碰撞”或者说极度难找到,虽然“碰撞”是肯定存在的(碰撞即不同的内容产生相同的摘要)。

应用:

一般地,把对一个信息的摘要称为该消息的指纹或数字签名。数字签名是保证信息的完整性和不可否认性的方法。数据的完整性是指信宿接收到的消息一定是信源发送的信息,而中间绝无任何更改;信息的不可否认性是指信源不能否认曾经发送过的信息。其实,通过数字签名还能实现对信源的身份识别(认证),即确定“信源”是否是信宿意定的通信伙伴。 数字签名应该具有唯一性,即不同的消息的签名是不一样的;同时还应具有不可伪造性,即不可能找到另一个消息,使其签名与已有的消息的签名一样;还应具有不可逆性,即无法根据签名还原被签名的消息的任何信息。这些特征恰恰都是消息摘要算法的特征,所以消息摘要算法适合作为数字签名算法。

有哪些具体的消息摘要算法?

MessageDigest的选择好多,包括MD2、MD4、MD5、SHA-1、SHA-256、RIPEMD128、RIPEMD160等等。

MD5

介绍:

message digest 5,消息摘要算法第五版,之前有md2,md4。
MD5消息摘要算法英语MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由罗纳德·李维斯特设计,于1992年公开,用以取代MD4算法。
MD5已经广泛使用在为文件传输提供一定的可靠性方面。例如,服务器预先提供一个MD5校验和,用户下载完文件以后,用MD5算法计算下载文件的MD5校验和,然后通过检查这两个校验和是否一致,就能判断下载的文件是否出错。

应用:

因为消息摘要算法具有唯一性、不可逆性、不可伪造性,因此广泛用于验证性加密领域,之所以叫验证性加密是因为不可逆性决定了无法还原出明文。

加密:一致性验证、数字证书、安全访问认证

安全性:

2009年,冯登国、谢涛二人利用差分攻击,将MD5的碰撞算法复杂度从王小云的2^42进一步降低到2^21,极端情况下甚至可以降低至2^10。仅仅2^21的复杂度意味着即便是在2008年的计算机上,也只要几秒便可以找到一对碰

md5算法在jdk、commons codec、bouncy castle中都有支持。

参考文献:

  • http://baike.baidu.com/link?url=uL1Znpd9XIRbHK4Y1Gt-GnDR_HEvEcMxoaEeifLZ2Avosx5ihzklPfYkxf0fiwwSRWAds5ldJVFbRaFDnx_C_q
  • http://zh.wikipedia.org/wiki/MD5
  • http://baike.baidu.com/link?url=7JxuDuffsYKEMoP7cB0PazuvcRQZ5DHgQHtp6DoVuc3fKWg9eIiEVEvdUtX0Cs3YUfQcfUSIKy2Y6-nMQM6QYa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值