PHP の「password_hash」関数を使用してハッシュを復号せずにユーザーのパスワードを検証する方法

Mary-Kate Olsen
リリース: 2024-11-02 02:01:03
オリジナル
206 人が閲覧しました

How to Verify User Passwords Without Decrypting Hashes Using PHP's `password_hash` Function?

PHP で Password_hash 関数を使用したパスワード ハッシュの復号

質問:

暗号化されたパスワードをpassword_hash関数を使用して復号化します。ハッシュされたパスワードがデータベースに保存されており、ユーザーが入力した平文のパスワードがあると仮定すると、セキュリティを損なうことなくそれらが一致するかどうかをどのように判断できますか?

答え:

Bcrypt は、password_hash 関数で使用されるハッシュ アルゴリズムであり、元に戻すことはできません。したがって、ハッシュ化されたパスワードを復号化する直接的な方法はありません。

代わりに、ユーザーのパスワードを検証するには、次の手順に従います。

  1. SQL クエリを使用してデータベースからハッシュ化されたパスワードを取得します。ユーザー名のみを選択します。これにより、SQL インジェクションの脆弱性が防止され、セキュリティが確保されます。
  2. password_verify 関数を使用して、ユーザーのプレーンテキスト パスワードとハッシュされたパスワードを比較します。一致する場合は true を返し、有効なログインを示します。

パスワード検証のコード例:

<code class="php">// Assume $hash is the hashed password from the database
if (password_verify($inputPassword, $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}</code>
ログイン後にコピー

重要な注意事項:

SQL インジェクション攻撃を防ぐには、SQL クエリでのユーザー入力をパラメータ化することが重要です。この実践に関するガイダンスとして提供されている Stack Overflow の回答を参照してください。

以上がPHP の「password_hash」関数を使用してハッシュを復号せずにユーザーのパスワードを検証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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