htpasswd我必须使用 PHP (v7.4.3)验证 apache 工具 (v2.4.41) 创建的 bcrypt-hashes password_verify。
但是如果我生成一个哈希值:
$ htpasswd -nbB test pass
test:$2y$05$m73wHlBS62EUh7uAxbUCJ.gHIfcEgiorl/1LrzNRAlSSH4bmrBUEy
...然后尝试在 PHP 中验证它...
cat << EOF | php -a
if (password_verify('pass', '$2y$05$m73wHlBS62EUh7uAxbUCJ.gHIfcEgiorl/1LrzNRAlSSH4bmrBUEy')) {
echo 'match';
} else {
echo 'mismatch';
}
EOF
...mismatch被打印。然而 PHP 可以验证它自己的 bcrypt 哈希值......
cat << EOF | php -a
if (password_verify('test', password_hash('test', PASSWORD_BCRYPT))) {
echo 'match';
} else {
echo 'mismatch';
}
EOF
...这个打印match。如何验证password_verify外部生成的 bcrypt 哈希值?
隔江千里