ホームページ >データベース >mysql チュートリアル >メンバーサイトでソルトされたパスワードを安全に検証するにはどうすればよいですか?

メンバーサイトでソルトされたパスワードを安全に検証するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-04 09:18:12859ブラウズ

How to Securely Verify Salted Passwords in a Member Site?

メンバー サイトでソルトされたパスワードを確認する方法

機密情報を保護するには、ユーザー認証にセキュリティ対策を組み込むことが重要です。パスワードをソルティングすると暗号化が強化され、不正アクセスが防止されます。この記事では、ソルト付きパスワードをデータベースに対して検証し、ユーザーの承認を確保するプロセスについて説明します。

ソルト付きパスワードの検証

ソルト付きパスワードを検証するには、次の手順に従います。

  1. 塩を取得します:クエリを実行して、ユーザー名に関連付けられたソルトを取得します。
  2. パスワードとソルトを結合する: ユーザーが入力したパスワードと取得したソルトを連結します。
  3. ハッシュ連結された文字列: SHA-256 などのハッシュ関数を使用して、連結された文字列のハッシュ値。
  4. ハッシュの比較: 手順 3 のハッシュ値が、データベースに保存されているハッシュされたパスワードと一致するかどうかを確認します。一致する場合、パスワードは有効です。

ソルテッド パスワード検証のサンプル コード:

$servername = 'localhost';
$username = 'root';
$pwd = '';
$dbname = 'lp001';

$connect = new mysqli($servername, $username, $pwd, $dbname);

if ($connect->connect_error) {
    die('Connection failed: ' . $connect->connect_error);
}

$name = mysqli_real_escape_string($connect, $_POST['name']);
$password = mysqli_real_escape_string($connect, $_POST['password']);

$saltQuery = "SELECT salt FROM users WHERE name = '$name';";
$saltResult = mysqli_query($connect, $saltQuery);

if ($saltResult === false) {
    die(mysqli_error($connect));
}

$row = mysqli_fetch_assoc($saltResult);
$salt = $row['salt'];

$saltedPW = $password . $salt;
$hashedPW = hash('sha256', $saltedPW);

$sqlQuery = "SELECT * FROM users WHERE name = '$name' AND password = '$hashedPW';";
$sqlResult = mysqli_query($connect, $sqlQuery);

if (mysqli_query($connect, $sqlQuery)) {
    echo '<h1>Welcome to the member site ' . $name . '</h1>';
} else {
    echo 'Error adding the query: ' . $sqlQuery . '<br> Reason: ' . mysqli_error($connect);
}

これらの手順とサンプル コードをメンバーに組み込むことで、サイトでは、ソルトされたパスワードを効果的に検証し、安全かつ効率的にユーザー認証を確保できます。

以上がメンバーサイトでソルトされたパスワードを安全に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。