Ik denk dat je vraagt hoe het werkt?? Het antwoord is vrij eenvoudig. StandardPasswordEncoder.matches()
is de methode die u wilt gebruiken. Achter de schermen, StandardPasswordEncoder
zal het gehashte wachtwoord decoderen en het zout uit de resulterende byte-array halen. Het zal dan dat zout gebruiken om het wachtwoord in platte tekst dat je hebt ingevoerd te hashen. Als de resulterende hash overeenkomt met de originele hash, komen je wachtwoorden overeen! Raadpleeg de bron voor de details achter 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));
}