Maison >développement back-end >tutoriel php >Comment puis-je hacher en toute sécurité des mots de passe en PHP en utilisant bcrypt ?

Comment puis-je hacher en toute sécurité des mots de passe en PHP en utilisant bcrypt ?

DDD
DDDoriginal
2024-12-20 16:23:18444parcourir

How Can I Securely Hash Passwords in PHP Using bcrypt?

Utilisation de bcrypt pour le hachage de mot de passe en PHP

bcrypt est une fonction de hachage de mot de passe sécurisée fortement recommandée pour stocker les mots de passe. Il est lent et utilise un grand nombre de tours, ce qui rend difficile pour les attaquants de forcer les mots de passe. De plus, il utilise des sels par mot de passe pour empêcher les tables arc-en-ciel.

bcrypt en PHP

PHP n'a pas de fonction bcrypt intégrée. Cependant, plusieurs options sont disponibles :

  • PHP 5.5 et supérieur :

    password_hash('password', PASSWORD_DEFAULT); // Default settings
    password_hash('password', PASSWORD_BCRYPT, [
       'cost' => 11, // Set the number of rounds
    ]);
  • PHP 5.3.7 à 5.5 (et RedHat PHP 5.3.3 ):

    • Installez la bibliothèque de compatibilité depuis GitHub.
    • L'utilisation est la même que celle de PHP 5.5.
  • Versions PHP avant 5.3.7 :

    • Obsolète : Utilisez la fonction crypt(), mais sachez que cette méthode n'est pas aussi sécurisée que les options ci-dessus.

Exemple :

$bcrypt = new Bcrypt(15);
$hash = $bcrypt->hash('password');
$isGood = $bcrypt->verify('password', $hash);

Avantages de bcrypt

  • Évolutif avec le matériel (nombre configurable de tours)
  • La lenteur rend les attaques par force brute difficiles
  • Les sels par mot de passe empêchent les tables arc-en-ciel
  • Nécessite le sel, les tours et le mot de passe pour la vérification

N'oubliez pas de toujours stocker le sel avec le mot de passe haché. Ne stockez jamais le mot de passe en texte brut dans une base de données ou toute autre ressource partagée. En utilisant bcrypt, vous pouvez protéger les mots de passe de vos utilisateurs de manière efficace et sécurisée.

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