共享主机的密码安全(PHP 5.2+)



我正在开发一些旨在部署到用户服务器上的PHP——可能是廉价/共享托管(意味着最低公分母PHP 5.2,不修改PHP安装)。密码散列的常见建议似乎是bcrypt或scrypt,通过PHP 5.2的可安装扩展。

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

如果不能修改基本PHP安装,我有什么选项可以实现强密码安全?

我要说的第一件事是不应该考虑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以供参考。

希望能有所帮助。

正如对原始问题的评论中所提到的,一个PHP<5.2 PBKDF2的实施可在http://crackstation.net/hashing-security.htm.

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

最新更新