ホームページ > バックエンド開発 > PHPチュートリアル > ユーザー認証のためにデータベースからソルトされたパスワードを取得するにはどうすればよいですか?

ユーザー認証のためにデータベースからソルトされたパスワードを取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-17 05:28:03
オリジナル
864 人が閲覧しました

How Do I Retrieve a Salted Password from the Database for User Authentication?

ユーザー認証のためにデータベースからソルト付きパスワードを取得する方法

MySQL に保存されたソルト付きパスワードを使用してメンバーシップ サイトを実装しようとすると、次の問題が発生する可能性があります。任意の入力を受け入れるメンバーのログイン ページ。この記事では、この問題に対処し、パスワードのソルティングとハッシュの概念に基づいた解決策を提供します。

パスワードのソルティングとハッシュ

セキュリティを強化するために、パスワードは多くの場合、パスワードに保存される前にソルトとハッシュが行われます。データベース。ソルティングではパスワードにランダムな文字列を追加し、ハッシュでは結果を安全な一方向の値に変換します。このプロセスにより、攻撃者がデータベースにアクセスした場合でも、実際のパスワードを直接取得することができなくなります。

ソルトされたパスワードの取得

ソルトされたパスワードを取得するには、次の手順を実行する必要があります。

  1. データベースにソルトをクエリします: SQL クエリを使用して、ユーザー名に関連付けられたソルト値を取得します。
  2. パスワードとソルトを連結します: ユーザーの入力パスワードと取得したソルトを結合します。
  3. 連結された値をハッシュします: ソルト付きパスワードにハッシュ関数を適用してハッシュ値を生成します。

ソルテッドパスワードの検証

ハッシュ値を取得したら、データベースに保存されているハッシュ化されたパスワードと照合して検証できます:

$sqlQuery = "SELECT * FROM users WHERE name = '$name' AND password = '$hashedPW'";

if (mysqli_query($connect, $sqlQuery)){
    echo '<h1>Welcome to the member site '.$name.'</h1>';
}else{
    echo 'error adding the query: '.$sql_q.'<br> Reason: '.mysqli_error($connect);
}
ログイン後にコピー

このコードでは、ハッシュ値が一致する場合、ログインは成功しました。それ以外の場合は、エラーが表示されます。

代替アプローチ

パスワード検証の別のアプローチは、password_hash() 関数とpassword_verify() 関数を使用することです。

$hashFromDb = ...; // retrieve the stored password hash

$isPasswordCorrect = password_verify($_POST['password'], $hashFromDb);
ログイン後にコピー

これらの関数は自動的に実行されます。ソルティングとハッシュのプロセスを処理し、パスワードの検証を簡素化します。

以上がユーザー認証のためにデータベースからソルトされたパスワードを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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