有没有更简单的加密/解密哈希算法



我在这个伟大的论坛和其他几个地方读到用md5解密是多么困难,如果不是不可能的话。

不幸的是,我使用 md5 对用户的密码进行哈希处理:

 // hash to sanitize the input further
$password = md5($password);

现在,我有点麻烦,因为忘记密码的用户无法使用我们的恢复密码功能。

当他们尝试恢复密码时,他们会收到加密的密码,这对他们毫无用处,因为他们无法使用它。

鉴于解密 md5 哈希的难度,几乎是不可能的,是否有一种更简单的加密/解密机制,有人可以建议我尝试?

现在几乎在热水中。

不幸的是,我使用 md5 来获取用户的密码

这怎么会很不幸? 这是你应该做的。 用户密码应隐藏在 1 路哈希后面,并且任何人都无法恢复。 甚至不是由您作为系统所有者/管理员。

忘记密码的用户无法使用我们的恢复密码功能

不应该有"恢复密码功能"这样的东西。 它被称为"重置密码功能"。 您可以通过管理方式更改用户的密码。 但是你永远不应该能够阅读它。

当他们尝试恢复密码时,他们会收到加密的密码,这对他们毫无用处,因为他们无法使用它。

但攻击者可以使用它。 这就是为什么你一开始就不应该把它发送给任何人

是否有更简单的加密/解密机制,有人可以建议我尝试?

没有比以下简单得多的了:

md5($password)

这是一个函数调用。 五次击键。 它使用起来非常简单。 既然你已经在使用它,你就很好。

一旦您停止发布密码哈希,您就可以处理用户密码(至少据我们所知)。 保持伟大的工作! 有大量的服务无法正确隐藏用户密码。 谢谢你至少尝试了它。

<小时 />

注意:正如用户所指出的(现在比我更熟悉PHP的用户),虽然直接使用md5()朝着正确方向迈出的一步,但它并不是你能做的最好的事情。

相反,看看PHP内置的密码处理功能。 (或者,如果您使用的是 5.5 之前的旧版 PHP,则有一个兼容包可以保持相同的功能。 杰伊·布兰查德(Jay Blanchard)在这里写了一篇关于其使用的方便文章。

概念是相同的,通过单向哈希来掩盖用户密码。 但是工具已经有了很大的发展。

最新更新