我已经阅读过这个伟大的论坛和其他几个地方,如果不是不可能用md5解密那么困难。
不幸的是,我使用md5来哈希用户的密码:
// hash to sanitize the input further
$password = md5($password);
现在,我有点麻烦,因为无法记住密码的用户无法使用我们的恢复密码功能。
当他们尝试恢复密码时,他们会收到加密密码,这对他们来说是无用的,因为他们无法使用密码。
考虑到难度,几乎不可能解密md5哈希,是否有更简单的加密/解密机制,有人可以建议我尝试?
现在几乎在热水中。
答案 0 :(得分:4)
不幸的是,我使用md5来获取用户的密码
不幸怎么样?这就是你所想要的。用户密码应该在单向哈希后面隐藏,并且 anybody 无法恢复。您甚至不是系统所有者/管理员。
无法记住密码的用户无法使用我们的恢复密码功能
应该没有这样的东西作为“恢复密码功能”。它被称为“重置密码功能”。您可以以管理方式更改用户密码。但是从不 永远 能够读取。
当他们尝试恢复密码时,他们会收到加密密码,这对他们来说是无用的,因为他们无法使用密码。
但攻击者 可以使用 。这就是为什么你不应该首先将它发送给任何人。
是否有更简单的加密/解密机制,有人可以建议我尝试?
是不是简单得多:
md5($password)
这是一个函数调用。五次击键。使用非常简单。因为你已经在使用它,所以你很好。
一旦停止发布密码哈希值,您将全部处理用户密码(至少就我们所知)。保持伟大的工作!有吨的服务,其中没有正确地模糊用户密码。感谢您至少尝试过它。
注意:正如用户所指出的那样(这些天比我更熟悉PHP的用户),直接使用md5()
是右边的一步方向,这不是你可能做的最好的。
相反,请看一下PHP内置的password handling functionality。 (或者,如果您使用较旧的5.5之前版本的PHP,那么compatibility pack会保留相同的功能。)Jay Blanchard撰写了一篇关于其使用here的方便文章。
概念是相同的,通过单向散列来模糊用户密码。但是工具发展很快。