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

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

Patricia Arquette
リリース: 2024-12-04 06:26:13
オリジナル
881 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート