我正在我的网络应用程序中制作忘记密码功能,问题是我使用以下方式存储用户密码:
哈希::make('_their_password_')
有没有办法重新散列它或为此推荐任何方法?
散列密码的要点是它(应该是)不可逆的操作。如果您的数据库遭到破坏,攻击者将获得对哈希的访问权,但无法访问密码。这样攻击者就无法使用其他站点上的用户密码登录。
制作“我们将重置您的密码”功能,而不是“我们将向您发送您的密码”功能。
请注意,关于密码散列,您绝对应该遵循其他最佳实践,以确保上面的“应该是”确实成立,并进一步减少您的网站被入侵时的影响。Laravel 的Hash
课程似乎已经在使用适合密码的散列函数 Bcrypt。但是,请确保在散列密码时使用盐。
Laravel 的 Hash 方法无法反转。
一种加密方式是存储用户密码或其他敏感数据的最佳方式。
一种方法意味着您的数据可以转换为加密字符串,但由于复杂的算法和痛苦的数学运算,无法逆转该过程。这使得存储密码变得轻而易举!您的客户不必担心您知道他们的密码,但您仍然可以比较他们(通过散列他们提供的密码)或在需要时更改密码。
如果需要反转,可以使用Crypter
class。
$secret = Crypter::encrypt('I actually like Hello Kitty');
$decrypted_secret = Crypter::decrypt($secret);
在此处阅读有关加密的更多信息http://codehappy.daylerees.com/encryption