【发布时间】:2013-03-17 19:56:05
【问题描述】:
好的,我终于了解了 bcrypt,它是如何工作的,以及如何将它存储在数据库中,所以我几乎可以开始了。现在的问题是选择与 PHP 5.3 一起使用的 bcrypt 实现。
看到所有不同的解决方案我都快疯了,我不确定哪一个是最推荐和最安全的,所以我再次求助于你们。
这是我找到的:
1) https://gist.github.com/marcoarment/1053158
2)http://www.openwall.com/phpass/
3)https://stackoverflow.com/a/6337021/869849
4) ...其他的?
这些是可互换的,还是产生不同的哈希?我想认为,由于它们都是“bcrypt”,它们会产生相同的结果,但我不确定(我在上面测试了1) 和2),它们似乎可以互换,因为@产生的哈希值987654329@ 在2) 上签出)。
那么 PHP 5.3 推荐的解决方案是什么?
【问题讨论】:
-
Are these interchangeable, or do they produce different hashes?为什么不加载它们并尝试一下? -
最佳解决方案:您应该使用 PHP 5.5 内置的密码库。他们发布了 PHP 5.3 和 5.4 的向后兼容版本。见here。但是请注意,您需要 5.3.7 或更高版本。 5.3.7 之前的 bcrypt 存在安全问题,这意味着新库将无法工作。
-
@nickb:我的意思更笼统,因为我实际上尝试过
1)和2),它们似乎可以互换,正如我在上面的帖子中提到的那样。 -
@Spudley:不幸的是,我的 PHP 在
5.3.7之下,否则那将是理想的。您认为下一个最佳选择是什么? -
@Programmer - 理想情况下你应该立即升级(注意:我确实提到旧版本的 bcrypt 存在安全问题)。如果您因任何其他原因无法升级或无法使用 Password_compat 库,我建议的下一个最佳选择是同一作者的 PasswordLib。
标签: php hash passwords bcrypt password-encryption