Maison >base de données >tutoriel mysql >Comment vérifier les mots de passe des utilisateurs en toute sécurité avec la fonction password_verify de PHP ?
Déchiffrement des mots de passe cryptés avec PHP
De nombreuses applications stockent les mots de passe des utilisateurs en toute sécurité à l'aide d'algorithmes de cryptage comme password_hash. Cependant, lors de la validation des tentatives de connexion, il est important de comparer le mot de passe saisi avec la version cryptée et stockée.
Le problème du cryptage
password_hash utilise Bcrypt, un manière algorithme de hachage, ce qui signifie que le mot de passe crypté ne peut pas être inversé ou déchiffré. Il s'agit d'une fonctionnalité de sécurité qui garantit que même si la base de données est compromise, les attaquants ne peuvent pas accéder aux mots de passe en texte brut.
La solution : vérification du mot de passe
Pour valider les mots de passe des utilisateurs , utilisez la fonction password_verify :
<code class="php">if (password_verify('input_password', $encrypted_password)) { // Password matches! } else { // Invalid password. }</code>
Cette fonction compare le mot de passe saisi à la version cryptée et renvoie vrai s'ils correspondent.
Modification de votre requête SQL
Au lieu d'inclure le mot de passe d'entrée dans la requête SQL, utilisez le paramétrage :
<code class="php">$sql_script = 'SELECT * FROM USERS WHERE username=?';</code>
Cela protège contre les attaques par injection SQL en empêchant les utilisateurs malveillants de manipuler votre requête.
Exemple
Voici un exemple d'utilisation de password_verify :
<code class="php">$username = $_POST['username']; $input_password = $_POST['password']; $sql_script = 'SELECT * FROM USERS WHERE username=?'; if ($result = $conn->query($sql_script, $username)) { if ($user = $result->fetch_assoc()) { if (password_verify($input_password, $user['password'])) { // Login successful! } else { // Invalid password. } } else { // User not found. } }</code>
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!