为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 验证 htpasswd 生成的 bcrypt 哈希值?

如何使用 PHP 验证 htpasswd 生成的 bcrypt 哈希值?

PHP
HUH函数 2023-09-22 16:44:16
htpasswd我必须使用 PHP (v7.4.3)验证 apache 工具 (v2.4.41) 创建的 bcrypt-hashes password_verify。但是如果我生成一个哈希值:$ htpasswd -nbB test passtest:$2y$05$m73wHlBS62EUh7uAxbUCJ.gHIfcEgiorl/1LrzNRAlSSH4bmrBUEy...然后尝试在 PHP 中验证它...cat << EOF | php -aif (password_verify('pass', '$2y$05$m73wHlBS62EUh7uAxbUCJ.gHIfcEgiorl/1LrzNRAlSSH4bmrBUEy')) {  echo 'match';} else {  echo 'mismatch';}EOF...mismatch被打印。然而 PHP 可以验证它自己的 bcrypt 哈希值......cat << EOF | php -aif (password_verify('test', password_hash('test', PASSWORD_BCRYPT))) {  echo 'match';} else {  echo 'mismatch';}EOF...这个打印match。如何验证password_verify外部生成的 bcrypt 哈希值?
查看完整描述

1 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

问题是,在我的实际代码中,由于对文件中的哈希值的解析不正确,哈希末尾存在额外的空格.htpasswd

OP中的“简化”示例引入了另一个不同的问题(由于在命令行上的散列中转义了特殊字符)并因此失败。


查看完整回答
反对 回复 2023-09-22
  • 1 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信