Saya pikir Anda bertanya bagaimana cara kerjanya?? Jawabannya cukup sederhana. StandardPasswordEncoder.matches()
adalah metode yang ingin Anda gunakan. Di balik layar, StandardPasswordEncoder
akan memecahkan kode kata sandi hash dan mengekstrak garam dari larik byte yang dihasilkan. Kemudian akan menggunakan garam itu untuk hash kata sandi teks biasa yang Anda masukkan. Jika hash yang dihasilkan cocok dengan hash asli, kata sandi Anda cocok! Lihat sumber untuk detail di balik 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));
}