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

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

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

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


当前回答

是的,你所要求的一切都是可能的。 在没有帮助的情况下“解密”MD5密码是不可能的,但是可以将MD5密码重新加密到另一种算法中,只是不能一蹴而就。

您要做的就是让用户能够使用旧的MD5密码登录到新系统。在他们登录时,他们已经给了你的登录程序一个未加密的密码版本,你证明与你拥有的MD5哈希匹配。然后,您可以将这个非散列密码转换为新的散列算法。

显然,这是一个扩展的过程,因为您必须等待用户告诉您密码是什么,但它确实有效。

(注意:七年后,哦,希望有人会发现它有用)

其他回答

无法恢复md5密码。(任何语言)

但是你可以:

给用户一个新的。

找个彩虹表,也许能找回旧的。

不可能,至少在合理的时间内是不可能的。

通常的处理方式是密码“重置”。也就是说,你给他们一个新的(随机的)密码,并在电子邮件中发送给他们。

要做到这一点并不容易。这就是首先对密码进行哈希的意义。:)

你应该做的一件事是手动为他们设置一个临时密码,并将其发送给他们。

我不愿提及这一点,因为这是一个坏主意(而且也不能保证一定有效),但您可以尝试在彩虹表(如milw0rm)中查找散列,看看是否可以通过这种方式恢复旧密码。

MD5哈希算法是不可逆的,所以MD5解码在不可能,但一些网站有批量设置密码匹配,所以你可以尝试在线解码MD5哈希。

在网上试试:

MD5解密

md5online

md5decrypter

在这里可以看到所有其他的答案,关于它如何以及为什么不可逆,以及为什么你不想这样做。

为了完整起见,这里有彩虹表,你可以在上面查找可能的匹配。不能保证彩虹表中的答案是用户选择的原始密码,这样会使用户非常困惑。

同样,这也不适用于咸散列。许多安全专家都建议用盐腌制。