package xx.xxxx.xxxx.util; // A changer... import java.util.HashMap; import java.util.Map; import javax.annotation.PostConstruct; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import javax.security.enterprise.identitystore.Pbkdf2PasswordHash; /** * Pour générer un mot de passe haché. * Avec l'initialisation actuelle, le mot de passe haché est de longueur 159. */ @ApplicationScoped public class HashMdp { @Inject private Pbkdf2PasswordHash passwordHash; @PostConstruct public void init() { Map<String, String> parameters = new HashMap<>(); parameters.put("Pbkdf2PasswordHash.Iterations", "3072"); parameters.put("Pbkdf2PasswordHash.Algorithm", "PBKDF2WithHmacSHA512"); parameters.put("Pbkdf2PasswordHash.SaltSizeBytes", "64"); passwordHash.initialize(parameters); } /** * Retourne le mot de passe crypté. * @param mdp le mot de passe non crypté. */ public String generate(String mdp) { return passwordHash.generate(mdp.toCharArray()); } }