Chyba pytasz jak to działa?? Odpowiedź jest dość prosta. StandardPasswordEncoder.matches()
to metoda, której chcesz użyć. Za kulisami StandardPasswordEncoder
zdekoduje zaszyfrowane hasło i wyodrębni sól z wynikowej tablicy bajtów. Następnie użyje tej soli do zaszyfrowania hasła w postaci zwykłego tekstu, które przekazałeś. Jeśli wynikowy hash jest zgodny z oryginalnym hashem, twoje hasła są zgodne! Zapoznaj się ze źródłem, aby uzyskać szczegółowe informacje dotyczące 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));
}