我正在开发一些用于部署到用户服务器的PHP - 可能是廉价/共享托管(意思是最低 - 通用 - 分母 PHP 5.2,不修改PHP安装)。密码哈希的Common advice似乎是bcrypt或scrypt,通过PHP 5.2的可安装扩展。
我一直在考虑使用带有强大的每用户盐的迭代SHA-512,但它听起来并不像bcrypt / scrypt。
如果没有修改基本PHP安装的能力,我对强密码安全性有哪些选择?
答案 0 :(得分: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以供参考。
希望有所帮助。
答案 1 :(得分:0)
如原始问题的评论中所述,PHP< 5.2 http://crackstation.net/hashing-security.htm可以获得PBKDF2的实施。
PBKDF2可以说是比bcrypt / scrypt更好的选择,经过更彻底的研究和测试。