Creo que usted está preguntando cómo funciona? La respuesta es bastante simple. StandardPasswordEncoder.matches()
es el método que desea utilizar. Detrás de escena, StandardPasswordEncoder
decodificará la contraseña codificada y extraerá la sal de la matriz de bytes resultante. Luego usará esa sal para codificar la contraseña de texto sin formato que ingresó. Si el hash resultante coincide con el hash original, ¡sus contraseñas coinciden! Consulte la fuente para conocer los detalles detrá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));
}