gpt4 book ai didi

php - 建议 PHP 5.3 使用哪种 bcrypt 实现?

转载 作者:可可西里 更新时间:2023-11-01 12:27:06 27 4
gpt4 key购买 nike

好的,我终于理解了 bcrypt,它是如何工作的,以及如何将它存储在数据库中,所以我几乎可以开始了。现在的问题是选择哪种 bcrypt 实现与 PHP 5.3 一起使用。

我正在疯狂地查看所有不同的解决方案,但我不确定哪一个是最值得推荐和使用最安全的,所以我再次求助于你们。

这是我找到的:

1) https://gist.github.com/marcoarment/1053158

2) http://www.openwall.com/phpass/

3) https://stackoverflow.com/a/6337021/869849

4) ...还有别的吗?

这些可以互换吗,或者它们会产生不同的哈希值吗?我想认为因为它们都是“bcrypt”,它们会产生相同的结果,但我不确定(我测试了 1)2) 上面并且它们似乎可以互换,因为 1) 生成的散列已在 2) 上 check out )。

那么推荐的 PHP 5.3 解决方案是什么?

最佳答案

最佳解决方案:您应该使用 PHP 5.5 内置的密码库。他们发布了 PHP 5.3 和 5.4 的向后兼容版本,名为 password_compat。 .但是请注意,您需要 5.3.7 或更高版本。 5.3.7 之前的 bcrypt 存在安全问题,这意味着新库将无法运行。

如果您使用的是 5.3.7 之前的版本,那么下一个最佳选择是 Password Lib同一个作者。但我建议升级 PHP 会是更好的选择。

正在安装

只需下载这两个库,将它们复制到您的站点文件夹,然后将它们的主文件包含在您的代码中即可安装,即 require('password.php');

如果您正在使用 Composer,也可以选择通过它进行安装。

用法(假设您要使用 password_compat):

创建密码:

$hash = password_hash($password, PASSWORD_BCRYPT);

验证密码:

if (password_verify($password, $hash)) {
/* Valid */
} else {
/* Invalid */
}

这基本上就是您需要了解的全部内容。该库会为您处理所有其他细节,例如加盐密码等。

[编辑] 如果您需要根据您的评论更改算法“成本”,则向 password_hash() 调用添加一个附加参数以指定它,如下所示:

password_hash($password, PASSWORD_BCRYPT, array("cost" => 11));

我在上面链接的下载页面上提供了完整的文档。

使用 password_compat 库的真正好处在于,它经过专门设计,具有与 PHP 5.5 标准中内置的相同 API 和功能。因此,如果您在使用 PHP 5.3 或 5.4 时使用 password_compat,那么当您迁移到 PHP 5.5 时,您的系统中已经有了正确的代码来使用新的内置密码函数。唯一的区别是您不需要包含库。

关于php - 建议 PHP 5.3 使用哪种 bcrypt 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15663874/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com