ホームページ >バックエンド開発 >PHPチュートリアル >ハッシュ化されたパスワードが、password_hash() とpassword_verify() を使用しても一致しないのはなぜですか?
PHP password_hash()、password_verify()
問題:
を使用した登録スクリプトパスワード暗号化のためのpassword_hash()と、パスワード検証のためのpassword_verify()を使用するログインスクリプトは、パスワードを正しく一致させません。
答え:
問題の内訳は次のとおりです。コード ソリューション:
キー ポイント:
問題と解決策:
この問題は、ハッシュと検証に異なるアルゴリズムを使用するときに発生します。受け取ったエラー (「いいえ。パスワード」) は、データベースに保存されているハッシュ化されたパスワードが、ログイン時に入力されたハッシュ化されていないパスワードと一致しないことを示しています。
改訂コード:
登録 (ハッシュ):
<code class="php">$password = password_hash($password, PASSWORD_DEFAULT); // Using PASSWORD_DEFAULT or specific algorithm</code>
ログイン (検証):
<code class="php">if (password_verify($pwd, $row['password'])) { // Password matches... }</code>
脚注:
以上がハッシュ化されたパスワードが、password_hash() とpassword_verify() を使用しても一致しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。