Maison >développement back-end >tutoriel php >Comment `password_hash()` et `password_verify()` de PHP 5.5 peuvent-ils stocker et vérifier en toute sécurité les mots de passe des utilisateurs ?

Comment `password_hash()` et `password_verify()` de PHP 5.5 peuvent-ils stocker et vérifier en toute sécurité les mots de passe des utilisateurs ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-23 04:00:14236parcourir

How Can PHP 5.5's `password_hash()` and `password_verify()` Securely Store and Verify User Passwords?

Stockage et vérification des mots de passe avec PHP 5.5

Lors de la sécurisation des mots de passe des utilisateurs, il est essentiel d'utiliser des techniques de cryptage robustes pour empêcher tout accès non autorisé. PHP 5.5 a introduit les fonctions password_hash() et password_verify() à cet effet, offrant une solution pratique et sécurisée pour la gestion des mots de passe.

Stockage correct du mot de passe

Le code fourni démontre une approche incorrecte du stockage des mots de passe. Vous ne devez pas stocker le sel séparément, mais plutôt stocker à la fois le hasch et le sel. La fonction password_hash() génère une chaîne qui intègre les deux éléments.

La bonne façon de stocker le mot de passe est :

$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into the database

Vérification du mot de passe

Pour vérifier le mot de passe, récupérez le $hashAndSalt précédemment stocké dans la base de données et utilisez-le avec password_verify() function :

if (password_verify($password, $hashAndSalt)) {
    // Verified
}

Considérations de sécurité supplémentaires

Bien que la fonction password_hash() fournisse un mécanisme de stockage sécurisé des mots de passe, il est important de respecter d'autres bonnes pratiques de sécurité. Pensez à utiliser :

  • extension mysqli au lieu de mysql (obsolète en PHP5.5)
  • Validation des entrées pour empêcher l'injection SQL

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