Myslím, že se ptáš jak to funguje?? Odpověď je poměrně jednoduchá. StandardPasswordEncoder.matches()
je metoda, kterou chcete použít. V zákulisí, StandardPasswordEncoder
dekóduje hashované heslo a extrahuje sůl z výsledného bajtového pole. Poté použije tuto sůl k hašování hesla ve formátu prostého textu, které jste zadali. Pokud se výsledný hash shoduje s původním hashem, vaše hesla se shodují! Podrobnosti o StandardPasswordEncoder.matches()
najdete ve zdroji :
public boolean matches(CharSequence rawPassword, String encodedPassword) {
byte[] digested = decode(encodedPassword);
byte[] salt = subArray(digested, 0, saltGenerator.getKeyLength());
return matches(digested, digest(rawPassword, salt));
}