PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come utilizzare Spring StandardPasswordEncode e ottenere Salt Generate?

secondo me ti stai chiedendo come funziona?? La risposta è abbastanza semplice. StandardPasswordEncoder.matches() è il metodo che vuoi usare. Dietro le quinte, StandardPasswordEncoder decodificherà la password con hash ed estrarrà il sale dall'array di byte risultante. Utilizzerà quindi quel salt per eseguire l'hashing della password in testo normale che hai passato. Se l'hash risultante corrisponde all'hash originale, le tue password corrispondono! Fare riferimento alla fonte per i dettagli dietro 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));
}