ホームページ >バックエンド開発 >PHPチュートリアル >PHP で「password_verify」が False を返すのはなぜですか?

PHP で「password_verify」が False を返すのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-04 06:26:13870ブラウズ

Why is `password_verify` Returning False in PHP?

password_verify が False を返すのはなぜですか?

以下に示すように、PHP のpassword_verify 関数を使用してパスワードを検証しようとすると、false が返されることがあります。肯定的な点:

if (password_verify($_POST['user_password'], $result_row->user_password_hash)) {
    // ...
}

原因:

問題は、データベース内のパスワード ハッシュ列の長さに起因している可能性があります。 PHP マニュアルによると、パスワード ハッシュは少なくとも 255 文字を収容できる列に保存することが推奨されています。これにより、長さに敏感であることで知られる bcrypt アルゴリズムとの互換性が確保されます。

解決策:

データベース内のパスワード ハッシュ列の長さを少なくとも 255 に拡張します。文字。これを行うには、以下に示すようにデータベース スキーマを適宜変更します。

ALTER TABLE users MODIFY COLUMN user_password_hash VARCHAR(255);

これにより、password_verify が保存されているハッシュと比較してパスワードを正確に検証できるようになります。

以上がPHP で「password_verify」が False を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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