Je pense que vous vous demandez comment ça marche ?? La réponse est plutôt simple. StandardPasswordEncoder.matches()
est la méthode que vous souhaitez utiliser. Dans les coulisses, StandardPasswordEncoder
décodera le mot de passe haché et extraira le sel du tableau d'octets résultant. Il utilisera ensuite ce sel pour hacher le mot de passe en clair que vous avez transmis. Si le hachage résultant correspond au hachage d'origine, vos mots de passe correspondent ! Reportez-vous à la source pour les détails derrière StandardPasswordEncoder.matches()
:
public boolean matches(CharSequence rawPassword, String encodedPassword) {
byte[] digested = decode(encodedPassword);
byte[] salt = subArray(digested, 0, saltGenerator.getKeyLength());
return matches(digested, digest(rawPassword, salt));
}