0

我正在研究一些旨在部署到用户服务器的 PHP——可能是廉价/共享主机(意味着最低公分母PHP 5.2,没有修改 PHP 安装)。密码哈希的常见建议似乎是 bcrypt 或 scrypt,通过 PHP 5.2 的可安装扩展。

我一直在考虑使用具有强大的每用户盐的迭代 SHA-512,但它听起来不像真的与 bcrypt/scrypt 相比。

如果无法修改基本 PHP 安装,我有哪些选项可以确保密码安全?

4

2 回答 2

0

我要说的第一件事是不应该考虑 PHP 5.2。它在近两年前被宣布报废,当时还没有任何安全补丁,所以任何仍在使用它的主机显然都不会认真对待安全性。这些天您应该将 5.3 视为最低版本。

不用密码...

下一版本的 PHP (v5.5) 将具有一组内置函数,可提供标准化的密码散列。这个想法是一劳永逸地摆脱 PHP 中错误密码实践的任何借口。一旦此版本发布,这将是唯一推荐的处理密码的方法。

同时,您可以下载一个兼容库,它为当前的 PHP 版本实现了相同的功能。从这里下载:https ://github.com/ircmaxell/password_compat

我的建议是使用这个库,包含在一个if(function_exists())包装器中。这样,您将使用最佳实践,并准备好在 5.5 发布时使用内置函数。

另请参阅:http ://www.h-online.com/open/news/item/PHP-5-5-should-reduce-password-sloppiness-1707835.html以供参考。

希望有帮助。

于 2012-10-09T06:55:16.240 回答
0

如对原始问题的评论中所述,可在http://crackstation.net/hashing-security.htm获得 PBKDF2 的 PHP < 5.2 实现。

PBKDF2 可以说是比 bcrypt/scrypt 更好的选择,它经过了更彻底的研究和测试。

于 2012-11-16T20:37:42.810 回答