Password_Hash を使用した PHP でのパスワード ハッシュの復号化
質問:
パスワードを復号化するにはどうすればよいですか? PHPのpassword_hash関数を使用して生成されたパスワードハッシュ?パスワードはデータベースに保存され、ユーザー入力と比較する必要があります。
答え:
暗号化とは異なり、ハッシュは一方向のプロセスです。パスワードは、password_hash を使用してハッシュ化されると、復号化して元の値に戻すことはできません。したがって、復号化ではなくパスワード検証を使用することが重要です。
password_verify を使用したパスワード検証:
<code class="php">$hash = password_hash('examplepassword', PASSWORD_DEFAULT); if (password_verify('examplepassword', $hash)) { echo 'Password is valid!'; } else { echo 'Invalid password.'; }</code>
ログイン シナリオでは、のみを使用して SQL クエリを実行します。ユーザー名:
<code class="php">$sql_script = 'SELECT * FROM USERS WHERE username=?';</code>
次に、入力されたパスワードを PHP に保存されているハッシュと比較します:
<code class="php">if (password_verify($inputpassword, $fetchedPasswordHashFromDB)) { // Password matches }</code>
重要な注意事項:
SQL インジェクション攻撃を防ぐためにユーザー入力をサニタイズします。準備されたステートメントまたはデータベース抽象化レイヤーを使用してクエリをパラメータ化します。
以上がPHP の「password_hash」関数によって生成されたパスワード ハッシュを復号化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。