私はあなたがそれがどのように機能するかを尋ねていると思いますか?答えはかなり簡単です。 StandardPasswordEncoder.matches()
使用したい方法です。舞台裏では、StandardPasswordEncoder
ハッシュされたパスワードをデコードし、結果のバイト配列からソルトを抽出します。次に、そのソルトを使用して、渡したプレーンテキストのパスワードをハッシュします。結果のハッシュが元のハッシュと一致する場合、パスワードは一致します。 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));
}