我想在 PHP 中使用双向加密来加密我网站上的密码。我遇到过 mcrypt 库,但它看起来很麻烦。有人知道其他更简单但安全的方法吗?我确实可以访问 Zend Framework,因此使用它的解决方案也可以。
我实际上需要双向加密,因为我的客户想要进入数据库并更改密码或检索它。
您应该存储经过哈希处理的密码(并且适当加盐 https://stackoverflow.com/questions/1645161/salt-generation-and-open-source-software/1645190#1645190).
世界上没有任何借口足以打破这条规则。
目前,使用crypt http://www.php.net/crypt,使用 CRYPT_BLOWFISH 是最佳实践。
PHP 中的 CRYPT_BLOWFISH 是 Bcrypt 哈希的实现。 Bcrypt 基于 Blowfish 分组密码。
如果您的客户端尝试登录,您将对输入的密码进行哈希处理,并将其与数据库中存储的哈希值进行比较。如果它们匹配,则授予访问权限。
如果您的客户想要更改密码,他们将需要通过一些小脚本来完成,该脚本可以正确散列新密码并将其存储到数据库中。
如果您的客户想要恢复密码,应生成新的随机密码并发送给您的客户。新密码的哈希值存储在数据库中
如果您的客户想要查找当前密码,他们运气不好。这正是散列密码的要点:系统不知道密码,因此它永远不会被“查找”/窃取。
Jeff https://stackoverflow.com/users/1/jeff-atwood博客上有关于它的内容:您可能错误地存储了密码 http://www.codinghorror.com/blog/archives/000953.html
如果你想使用标准库,你可以看看:便携式 PHP 密码哈希框架 http://www.openwall.com/phpass/并确保使用 CRYPT_BLOWFISH 算法。
(一般来说,直接修改数据库中的记录是自找麻烦。
许多人 - 包括非常有经验的数据库管理员 - 已经通过艰难的方式发现了这一点。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)