有人告诉我,他见过这样的软件系统:

从其他系统检索MD5加密密码; 解密加密的密码和 使用系统自己的算法将密码存储在系统的数据库中。

这可能吗?我认为解密MD5哈希是不可能/可行的。

我知道有MD5字典,但是有真正的解密算法吗?


当前回答

不,你不能解密/反向md5,因为它是一个单向哈希函数,直到你不能在md5中发现广泛的漏洞。 另一种方法是有一些网站有大量的密码集数据库,所以你可以尝试在线解码你的MD5或SHA1哈希字符串。 我尝试了http://www.mycodemyway.com/encrypt-and-decrypt/md5这样的网站,它对我来说工作得很好,但这完全取决于你的哈希,如果哈希存储在数据库中,那么你可以得到实际的字符串。

其他回答

不,你不能解密/反向md5,因为它是一个单向哈希函数,直到你不能在md5中发现广泛的漏洞。 另一种方法是有一些网站有大量的密码集数据库,所以你可以尝试在线解码你的MD5或SHA1哈希字符串。 我尝试了http://www.mycodemyway.com/encrypt-and-decrypt/md5这样的网站,它对我来说工作得很好,但这完全取决于你的哈希,如果哈希存储在数据库中,那么你可以得到实际的字符串。

不直接。由于鸽子洞原理,有(可能)不止一个值散列到任何给定的MD5输出。因此,你不能肯定地扭转它。此外,MD5是为了使查找任何这样的反向哈希变得困难(然而,已经有产生冲突的攻击-也就是说,产生两个哈希到相同结果的值,但您无法控制最终的MD5值是什么)。

但是,如果将搜索空间限制为长度小于N的普通密码,则可能不再具有不可逆性属性(因为MD5输出的数量远远大于感兴趣域中的字符串数量)。然后,您可以使用彩虹表或类似的反向哈希。

理论上,对哈希值进行解密是不可能的,但您可以使用一些肮脏的技术来获取原始的纯文本。

Bruteforcing: All computer security algorithm suffer bruteforcing. Based on this idea today's GPU employ the idea of parallel programming using which it can get back the plain text by massively bruteforcing it using any graphics processor. This tool hashcat does this job. Last time I checked the cuda version of it, I was able to bruteforce a 7 letter long character within six minutes. Internet search: Just copy and paste the hash on Google and see If you can find the corresponding plaintext there. This is not a solution when you are pentesting something but it is definitely worth a try. Some websites maintain the hash for almost all the words in the dictionary.

您可以找到使用字典检索原始消息的在线工具。

在某些情况下,dictionary方法可能是无用的:

如果使用SALT消息散列消息 如果消息是哈希不止一次

例如,这里有一个MD5解密在线工具。

MD5有它的弱点(见维基百科),所以有一些项目,试图预先计算哈希值。维基百科也暗示了其中一些项目。我所知道(并且尊敬)的一个是ophrack。您不能告诉用户他们自己的密码,但您可以告诉他们一个有效的密码。但我想:还是给他们寄个新密码吧,以防他们忘了。