2012-10-08 26 views
0

我正在研究一些PHP,意图将其部署到用户的服务器上 - 可能是廉价/共享主机(意思是最低公分母PHP 5.2,不需要修改PHP安装)。密码哈希的Common advice似乎是bcrypt或scrypt,通过PHP 5.2的可安装扩展。共享主机的密码安全性(PHP 5.2+)

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

没有修改基本PHP安装的能力,我对强密码安全性有哪些选择?

+4

请记住,安全性需要按比例缩放至应用程序。如果您正在编写一个微小的100个用户程序或者甚至是一个内部小型商业工具,那么编写企业级安全性可能不值得花时间。对于大多数用例来说,带盐的SHA-512在我看来是很安全的。但是,也要小心跨站点的废话! – thatidiotguy

+0

同意以前的评论。人们倾向于过度这样做,特别是在这个领域。 phpBB2使用了多年的MD5 ...你认为有多少与散列有关的问题? – vanneto

+0

我的用例可能不需要企业级的安全性。 :)但是,我认为这个问题的答案可能对某人有价值。 – cltatman

回答

0

我会说的第一件事就是不应该考虑PHP 5.2。它在两年前宣布寿终正寝,并且在那个时候还没有任何安全补丁,所以仍然使用它的任何主机无论如何都不重视安全。这些日子你应该考虑5.3作为最低版本。

没有上密码...

PHP(V5.5)的下一个版本将有一组内置提供标准化的密码散列函数。这个想法是一劳永逸地摆脱在PHP中使用错误密码练习的任何借口。一旦该版本发布,这将是唯一推荐的处理密码的方式。

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

我的建议是使用这个库,附在一个if(function_exists())包装。这样你就可以使用最佳实践,并且在5.5发布时也可以使用内置的funcs。

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

希望有所帮助。

+0

这个库需要PHP> = 5.3.7。 – sanmai