王晓云破解MD5到什么程度?


王晓云破解MD5到什么程度?

文章插图
“比如我一个定长的32个字符的字符串1(包括0~9 , a~f共16个字母)形成的一个MD5的字符串2 , 能否通过这个字符串2准确的找到字符串1?”这个不可能 , MD5是消息摘要算法 , 只是“摘要”而已 , 理论上是不可逆的 。“再比如一个定长的33个字符的字符串1形成MD5字符串2 , 能否通过字符串2找到所有形成MD5字符串2的33个字符的字符串1 。”这个应该可以 , 只是可能的值非常多 , 多到可以认为“不可逆” 。其实 , 王晓云所谓的MD5破解并不是你说的那种由加密后的字符串可以反推回加密前的内容 , 而是“MD5碰撞” , 就比如说字符串S1和S2不同但它们形成的MD5值却相同 , 即发生了“碰撞” 。王晓云的研究成果是在知道S1的情况下 , 可以通过算法在一定的时间内找到S2 使S1和S2的MD5相同 , 说白了就是找“碰撞” 。我这里有外国的研究人员根据她的研究成果特意构造的发生“MD5碰撞”两个控制台程序 , 一个是不停地输出 Goodbye World :-( 另一个是只输出一个Hello World ;-)但是这两个程序的MD5却一样 。现在的研究成果还不能使任意两个文件的MD5值一样 。但是既然可以人为地构造碰撞就说明MD5算法已经不再适合做文件的数字签名 , 验证文件的完整性了 。所以 , 王晓云对MD5算法的破解是发现MD5可以发生“碰撞”并给出寻找这种碰撞的方法 , 但是MD5算法本身依然是不可逆的 , 仍然可以用来加密 。////////////////////////////////////////////////////补充:“根据MD5值能找到和原字符S1相同MD5的S2,这个S2是随机找到的?还是有什么规律呢?如果我想找到一定条件的S2这可能吗? 比如我就想找到某MD5的S2是一个开头5个字符是A1234的字符串 , 这可能吗?(当然是在短期内找到 , 而不是穷举) 。”不是穷举随机找到的 , 而是用一套碰撞搜索算法 , 利用这套算法可以在一定时间内找到碰撞 , 但是搜素到的结果是不可预期的 , 也就是说在找到前很难预言S2会是什么 , 更不要说满足一定的条件了 。希望对您能有所帮助~~~ P.S.:还有 , 是buaa_dep6 , 不是bubba , 呵呵^_^
【王晓云破解MD5到什么程度?】

    推荐阅读