MySQL に保存されたソルト付きパスワードを使用してメンバーシップ サイトを実装しようとすると、次の問題が発生する可能性があります。任意の入力を受け入れるメンバーのログイン ページ。この記事では、この問題に対処し、パスワードのソルティングとハッシュの概念に基づいた解決策を提供します。
セキュリティを強化するために、パスワードは多くの場合、パスワードに保存される前にソルトとハッシュが行われます。データベース。ソルティングではパスワードにランダムな文字列を追加し、ハッシュでは結果を安全な一方向の値に変換します。このプロセスにより、攻撃者がデータベースにアクセスした場合でも、実際のパスワードを直接取得することができなくなります。
ソルトされたパスワードを取得するには、次の手順を実行する必要があります。
ハッシュ値を取得したら、データベースに保存されているハッシュ化されたパスワードと照合して検証できます:
$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 サイトの他の関連記事を参照してください。