Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengesahkan Kata Laluan Masin dengan Selamat dalam Tapak Ahli?

Bagaimana untuk Mengesahkan Kata Laluan Masin dengan Selamat dalam Tapak Ahli?

Barbara Streisand
Barbara Streisandasal
2024-12-04 09:18:12859semak imbas

How to Securely Verify Salted Passwords in a Member Site?

Cara Mengesahkan Kata Laluan Masin dalam Tapak Ahli Anda

Membenamkan langkah keselamatan ke dalam pengesahan pengguna adalah penting untuk melindungi maklumat sensitif. Kata laluan pengasinan meningkatkan penyulitan dan menghalang akses tanpa kebenaran. Artikel ini membincangkan proses mengesahkan kata laluan masin terhadap pangkalan data dan memastikan kebenaran pengguna.

Mengesahkan Kata Laluan Masin

Untuk mengesahkan kata laluan masin, kami mengikuti langkah berikut:

  1. Ambil Garam: Laksanakan pertanyaan untuk mendapatkan semula garam yang dikaitkan dengan nama pengguna.
  2. Sambungkan Kata Laluan dan Garam: Gabungkan kata laluan pengguna yang dimasukkan dan garam yang diambil semula.
  3. Hash yang Bercantum Rentetan: Gunakan fungsi pencincangan, seperti SHA-256, untuk menjana nilai cincang untuk rentetan bercantum.
  4. Bandingkan Cincang: Semak sama ada nilai cincang dari langkah 3 sepadan dengan kata laluan cincang yang disimpan dalam pangkalan data. Jika ia sepadan, kata laluan itu sah.

Contoh Kod untuk Pengesahan Kata Laluan Masin:

$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);
}

Dengan memasukkan langkah-langkah dan contoh kod ini ke dalam ahli anda tapak, anda boleh mengesahkan kata laluan masin dengan berkesan dan memastikan kebenaran pengguna dengan selamat dan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Kata Laluan Masin dengan Selamat dalam Tapak Ahli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn