Hachage de mot de passe sécurisé avec des sels en PHP
Question :
- Que sont les meilleures pratiques pour une protection sécurisée par mot de passe en PHP, compte tenu des limites de MD5 et de la nécessité d'un équilibre entre vitesse et sécurité ?
Réponse :
Mécanisme de hachage et sel
- En PHP, bcrypt est le mécanisme de hachage de mot de passe recommandé. Il utilise une fonction de calcul intensive appelée Blowfish, ce qui rend difficile la force brute des mots de passe.
- Un sel est une valeur aléatoire ajoutée au mot de passe avant le hachage, ce qui empêche des mots de passe identiques de produire le même hachage. Il améliore la sécurité contre les attaques de table arc-en-ciel.
- Les bons sels ont une entropie élevée, garantissant l'unicité et l'imprévisibilité.
Choisir une fonction de hachage
- Bcrypt est l'option la plus sécurisée.
- Si bcrypt n'est pas disponible, utilisez scrypt, PBKDF2 avec hachages SHA2 ou PHPASS (option héritée).
Bonnes pratiques
- Évitez de restreindre le nombre de caractères ou la longueur du mot de passe.
- Implantez une longueur minimale de mot de passe raisonnable (par exemple, 10 caractères).
- Exiger une combinaison de lettres majuscules et minuscules, de chiffres et de symboles pour augmenter l'entropie du mot de passe.
- Réinitialiser les mots de passe après une compromission de la base de données.
Considérations supplémentaires
- Stockage de plusieurs mots de passe hachés (par exemple, en utilisant différents algorithmes) n'est pas recommandé car cela ajoute de la complexité sans avantages de sécurité significatifs.
- Évitez d'utiliser hash() avec bcrypt, car il nécessite un codage hexadécimal ou base64 pour empêcher l'introduction de caractères malveillants qui affaiblissent la sécurité.
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!