Maison >base de données >tutoriel mysql >Comment vérifier en toute sécurité les mots de passe salés sur un site membre ?

Comment vérifier en toute sécurité les mots de passe salés sur un site membre ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 09:18:12919parcourir

How to Securely Verify Salted Passwords in a Member Site?

Comment vérifier les mots de passe salés sur votre site membre

L'intégration de mesures de sécurité dans l'authentification des utilisateurs est cruciale pour protéger les informations sensibles. Le salage des mots de passe améliore le cryptage et empêche tout accès non autorisé. Cet article traite du processus de vérification des mots de passe salés par rapport à une base de données et de garantie de l'autorisation de l'utilisateur.

Vérification des mots de passe salés

Pour vérifier un mot de passe salé, nous suivons ces étapes :

  1. Récupérer le sel : Exécuter une requête pour récupérer le sel associé au nom de l'utilisateur.
  2. Combinez le mot de passe et le sel : Concaténez le mot de passe saisi par l'utilisateur et le sel récupéré.
  3. Hashez la chaîne concaténée : Utilisez un hachage fonction, telle que SHA-256, pour générer une valeur de hachage pour le string.
  4. Comparez les hachages : Vérifiez si la valeur hachée de l'étape 3 correspond au mot de passe haché stocké dans la base de données. S'ils correspondent, le mot de passe est valide.

Exemple de code pour la vérification du mot de passe Salted :

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

En incorporant ces étapes et un exemple de code dans votre membre site, vous pouvez vérifier efficacement les mots de passe salés et garantir l'autorisation des utilisateurs de manière sécurisée et efficace.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn