Class PasswordUtil
java.lang.Object
server.metier.util.PasswordUtil
Classe utilitaire pour la gestion sécurisée des mots de passe.
Utilise BCrypt pour hasher et vérifier les mots de passe de manière sécurisée.
BCrypt est un algorithme de hashage adaptatif qui :
- Génère un salt aléatoire unique pour chaque mot de passe
- Est résistant aux attaques par force brute grâce à son coût de calcul
- Inclut automatiquement le salt dans le hash généré
-
Method Summary
Modifier and TypeMethodDescriptionstatic StringhashPassword(String plainPassword) Hash un mot de passe en clair avec BCrypt.static booleanisBCryptHash(String hash) Vérifie si un hash donné est un hash BCrypt valide.static booleanverifyPassword(String plainPassword, String hashedPassword) Vérifie qu'un mot de passe en clair correspond à un hash BCrypt.
-
Method Details
-
hashPassword
Hash un mot de passe en clair avec BCrypt. Génère automatiquement un salt aléatoire unique.- Parameters:
plainPassword- le mot de passe en clair à hasher- Returns:
- le hash BCrypt du mot de passe (inclut le salt)
- Throws:
IllegalArgumentException- si le mot de passe est null ou vide
-
verifyPassword
Vérifie qu'un mot de passe en clair correspond à un hash BCrypt. Utilise l'algorithme BCrypt pour comparer de manière sécurisée.- Parameters:
plainPassword- le mot de passe en clair à vérifierhashedPassword- le hash BCrypt stocké en base de données- Returns:
- true si le mot de passe correspond au hash, false sinon
- Throws:
IllegalArgumentException- si l'un des paramètres est null ou vide
-
isBCryptHash
Vérifie si un hash donné est un hash BCrypt valide. Utile pour détecter les anciens mots de passe non hashés en base.- Parameters:
hash- le hash à vérifier- Returns:
- true si c'est un hash BCrypt valide, false sinon
-