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中的“簡化”示例引入了另一個不同的問題(由于在命令行上的散列中轉義了特殊字符)并因此失敗。
- 1 回答
- 0 關注
- 103 瀏覽
添加回答
舉報
0/150
提交
取消