Maison > développement back-end > tutoriel php > Comment puis-je stocker et vérifier en toute sécurité les mots de passe des utilisateurs dans PHP 5.5 à l'aide de password_hash() et password_verify() ?

Comment puis-je stocker et vérifier en toute sécurité les mots de passe des utilisateurs dans PHP 5.5 à l'aide de password_hash() et password_verify() ?

Barbara Streisand
Libérer: 2024-12-04 20:57:16
original
727 Les gens l'ont consulté

How Can I Securely Store and Verify User Passwords in PHP 5.5 Using password_hash() and password_verify()?

Stockage sécurisé des mots de passe avec PHP 5.5

Lors de la protection des mots de passe des utilisateurs dans une base de données, il est crucial d'utiliser des techniques de cryptage robustes. PHP 5.5 a introduit deux fonctions essentielles, password_hash() et password_verify(), conçues spécifiquement à cet effet. Examinons leur bon usage.

La méthode que vous proposez, qui consiste à transmettre un coût et un sel unique à password_hash(), n'est pas optimale. Au lieu de cela, comptez sur le mécanisme de sel et de coût intégré, qui génère ces valeurs en toute sécurité en interne. La fonction renvoie un hachage qui combine à la fois le hachage et le sel.

Stockage du hachage et du sel :

$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
Copier après la connexion

Insérez $hashAndSalt dans la base de données au lieu de le diviser le sel et le hachis.

Vérification du Mot de passe :

if (password_verify($password, $hashAndSalt)) {
   // Verified
}
Copier après la connexion

Récupérez $hashAndSalt de la base de données et comparez-le directement avec le mot de passe fourni à l'aide de password_verify(). Il gérera la comparaison du sel en interne.

Considérations de sécurité supplémentaires :

Bien que l'utilisation de ces fonctions constitue une étape vers une gestion sécurisée des mots de passe, envisagez des mesures supplémentaires telles que :

  • Utiliser un protocole de communication sécurisé tel que SSL/TLS pour les données en transit.
  • Employer un protocole sécurisé couche de base de données comme MySQLi au lieu du ext/mysql obsolète.
  • Mise en œuvre du hachage de mot de passe côté serveur pour empêcher la falsification côté client.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal