Maison >développement back-end >tutoriel php >Comment puis-je sécuriser mon code avec le hachage de mot de passe à l'aide de PDO ?

Comment puis-je sécuriser mon code avec le hachage de mot de passe à l'aide de PDO ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 12:39:10710parcourir

How Can I Secure My Code with Password Hashing Using PDO?

Sécurisation du code avec hachage de mot de passe à l'aide de PDO

Bien que le code fourni atteigne la fonctionnalité, sa sécurité est gravement compromise. Pour améliorer la sécurité, la mise en œuvre du hachage de mot de passe avec PDO est cruciale.

Incorporation du hachage de mot de passe dans le code existant

Pour intégrer le hachage de mot de passe, envisagez d'utiliser des bibliothèques réputées. Pour PHP 5.5, utilisez password_hash(), PHP 5.3.7 est compatible avec les mots de passe, tandis que d'autres peuvent opter pour phpass. Évitez de créer du sel personnalisé, car les bibliothèques gèrent ce processus efficacement.

Mise en œuvre du hachage pour l'enregistrement

// Establish PDO connection...

$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$hash = password_hash($password, PASSWORD_DEFAULT); // Hashes password

$stmt = $dbh->prepare("insert into users set username=?, email=?, password=?");
$stmt->execute([$username, $email, $hash]);
echo "<p>Registration successful</p>";

Vérification des mots de passe hachés pour la connexion

// Establishing PDO connection...

$sql = "SELECT * FROM users WHERE username = ?";
$stmt = $dbh->prepare($sql);
$result = $stmt->execute([$_POST['username']]);
$users = $result->fetchAll();
if (isset($users[0]) {
    if (password_verify($_POST['password'], $users[0]->password)) {
        // Valid login
    } else {
        // Invalid password
    }
} else {
    // Invalid username
}

Avantages du mot de passe Hachage

  • Protège les mots de passe stockés contre les accès non autorisés
  • Empêche de deviner facilement les mots de passe
  • Améliore la sécurité globale du système

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