ホームページ >バックエンド開発 >PHPチュートリアル >資格情報が正しいにもかかわらず、PHP の「password_verify()」が False を返すのはなぜですか?

資格情報が正しいにもかかわらず、PHP の「password_verify()」が False を返すのはなぜですか?

DDD
DDDオリジナル
2024-12-03 20:19:16762ブラウズ

Why Does PHP's `password_verify()` Return False Despite Correct Credentials?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。