Jeg tror du spørger hvordan det virker?? Svaret er ret simpelt. StandardPasswordEncoder.matches()
er den metode, du vil bruge. Bag kulisserne, StandardPasswordEncoder
vil afkode den hash-kodede adgangskode og udtrække saltet fra den resulterende byte-array. Det vil derefter bruge det salt til at hash det almindelige tekstkodeord, du har givet. Hvis den resulterende hash matcher den originale hash, matcher dine adgangskoder! Se kilden for detaljerne bag 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));
}