Class PasswordUtil

java.lang.Object
server.metier.util.PasswordUtil

public class PasswordUtil extends Object
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 Details

    • hashPassword

      public static String hashPassword(String plainPassword)
      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

      public static boolean verifyPassword(String plainPassword, String hashedPassword)
      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érifier
      hashedPassword - 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

      public static boolean isBCryptHash(String hash)
      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