Acho que você está perguntando como funciona?? A resposta é bastante simples.
StandardPasswordEncoder.matches()
é o método que você deseja usar. Nos bastidores, StandardPasswordEncoder
irá decodificar a senha com hash e extrair o sal da matriz de bytes resultante. Ele então usará esse sal para fazer o hash da senha de texto simples que você passou. Se o hash resultante corresponder ao hash original, suas senhas correspondem! Consulte a fonte para obter os detalhes por trás de 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));
}