1

我正在我的网络应用程序中制作忘记密码功能,问题是我使用以下方式存储用户密码:

哈希::make('_their_password_')

有没有办法重新散列它或为此推荐任何方法?

4

2 回答 2

4

散列密码的要点是它(应该是)不可逆的操作。如果您的数据库遭到破坏,攻击者将获得对哈希的访问权,但无法访问密码。这样攻击者就无法使用其他站点上的用户密码登录。

制作“我们将重置您的密码”功能,而不是“我们将向您发送您的密码”功能。

请注意,关于密码散列,您绝对应该遵循其他最佳实践,以确保上面的“应该是”确实成立,并进一步减少您的网站被入侵时的影响。Laravel 的Hash课程似乎已经在使用适合密码的散列函数 Bcrypt。但是,请确保在散列密码时使用盐。

于 2013-10-07T09:19:10.327 回答
1

Laravel 的 Hash 方法无法反转。

一种加密方式是存储用户密码或其他敏感数据的最佳方式。

一种方法意味着您的数据可以转换为加密字符串,但由于复杂的算法和痛苦的数学运算,无法逆转该过程。这使得存储密码变得轻而易举!您的客户不必担心您知道他们的密码,但您仍然可以比较他们(通过散列他们提供的密码)或在需要时更改密码。

如果需要反转,可以使用Crypterclass。

$secret = Crypter::encrypt('I actually like Hello Kitty');
$decrypted_secret = Crypter::decrypt($secret);

在此处阅读有关加密的更多信息http://codehappy.daylerees.com/encryption

于 2013-10-07T10:10:20.083 回答