Maison > base de données > tutoriel mysql > le corps du texte

Comment vérifier les mots de passe des utilisateurs en toute sécurité avec la fonction password_verify de PHP ?

DDD
Libérer: 2024-10-28 11:16:01
original
396 Les gens l'ont consulté

How to Verify User Passwords Securely with PHP's password_verify Function?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!