MD5是被广泛使用的密码散列函数,曾被广泛应用于计算机安全领域。在2004年,MD5被证实无法防止碰撞,因此不适用于安全性认证。那么MD5碰撞是什么意思,我们如何处理Hash碰撞呢?
MD5碰撞是什么意思
简单来说,就是先得出一个字符串的MD5值,在根据这个值,逆算出另外一个不同的字符串,但是它们的MD5值是一致的。这就是MD5碰撞,几率很小的。
常见的碰撞法
我们常见的碰撞法:暴力碰撞(穷举法、字典法),就是利用计算机的资源尝试碰撞已知的MD5码。
穷举法
穷举法就是不停地尝试各种字符的排列组合,看哪一个组合的MD5码能对上。缺点是太耗费时间。举个例子,假设我们要破解一个6位大小写字母和数字混合的密码,那么一共有 (26 + 26 + 10) ^ 6 种组合。这个数的大小超过500亿。
字典法
字典法就是把计算结果以映射表的形式存放起来,一个原文对应着一个MD5值。将已知的MD5码查表,就可直接反查出原文。字典法体现了算法设计的“以空间换时间”的思想。缺点是比较耗费空间,而且实际上还是要穷举一遍所有的输入,只不过把穷举的结果存了起来。
一个用字典法实现md5解密的网站:https:/