md5算法解密
MD5加密是不能逆运算的,现在的破解大都是穷尽法,就是有一个庞大的MD5码对照表放在那里,然后一个一个去对照着查。
Ⅱ asp中用md5算法得到的加密数据如何解密!麻烦写个简单的代码演示下!
MD5 是破坏性加密,也就是说是无法由密文直接解密的。
详细说明如下:
MD5是输入不定长度讯息,输出固定长度128-bits的算法。经过程式流程,生成四个32位元资料,最后联合起来成为一个128-bits杂凑。基本方式为,求余、取余、调整长度、与连结变数进行回圈运算。得出结果。一般128位元的MD5杂凑被表示为32位元十六进制数位。以下是一个43位长ASCII字母列的MD5杂凑:
MD5("The quick brown fox jumps over the lazy dog") =
即使在原文中作一个小变化(比如用c取代d)其杂凑也会发生巨大的变化:
MD5("The quick brown fox jumps over the lazy cog") =
而空文的杂凑为:
MD5("") =
MD5的弱点:
MD5较老,杂凑长度通常为128位元,随着电脑运算能力提高,找到“碰撞”是可能的。因此,在安全要求高的场合不使用MD5。
2004年,王小云证明MD5数位签名算法可以产生碰撞。
2007年,Marc Stevens,Arjen K. Lenstra和Benne de Weger进一步指出透过伪造软体签名,可重复性攻击MD5算法。研究者使用字首碰撞法(chosen-prefix collision),使程式前端包含恶意程式,利用后面的空间添上垃圾代码凑出同样的MD5 Hash值。
2007年,荷兰埃因霍芬技术大学科学家成功把2个执行档进行了MD5碰撞,使得这两个执行结果不同的程式被计算出同一个MD5。
2008年12月一组科研人员透过MD5碰撞成功生成了伪造的SSL证书,这使得在https协议中服务器可以伪造一些根CA的签名。