Password_verify が一貫して False を返す
PHP 5.5 のユーザーは、password_verify() 関数から予期しない false の戻り値が返されることがあります。
問題
次のコードを考えてみましょうスニペット:
// get result row (as an object)
$result_row = $result_of_login_check->fetch_object();
// using PHP 5.5's password_verify() function to check if the provided password fits
// the hash of that user's password
if (password_verify($_POST['user_password'], $result_row->user_password_hash)) {
// ...
}
ログイン後にコピー
$_POST['user_password'] と $result_row->user_password_hash の値が正しいことを検証しているにもかかわらず、password_verify() は false を返し続けます。
解決策
この問題は通常、ハッシュされたパスワードを保存するための列の長さが不十分なために発生します。データベース。 PHP マニュアルでは、ハッシュされたパスワードの長さが 60 文字を超える可能性があるため、少なくとも 255 文字の容量を持つ列を使用することを推奨しています。
この問題を解決するには、ハッシュされたパスワードの保存に使用されるデータベース列が十分な長さ。列定義を 255 以上の長さに更新すると、問題が解決され、password_verify() が正しく機能できるようになります。
以上が資格情報が正しいにもかかわらず、PHP の「password_verify()」が False を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。