私はSpring SecurityのBcrypt Password Encoderを新しいアプリケーションに統合していますが、テスト中にワークロードが異なると思われる2つのエンコーダを使用してパスワードを一致させると効果がないようです仕事の要素。次の例を参考にしてください。Spring Security BCryptパスワードエンコーダ - ワークロードファクタ
public static void main(String[] args) {
PasswordEncoder strongEncoder = new BCryptPasswordEncoder(12);
PasswordEncoder weakEncoder = new BCryptPasswordEncoder(6);
String password = "[email protected]@";
String strongEncodedPass = strongEncoder.encode(password);
String weakEncodedPass = weakEncoder.encode(password);
//Prints true
System.out.println(weakEncoder.matches(password, strongEncodedPass));
//Prints true
System.out.println(strongEncoder.matches(password, weakEncodedPass));
}
エンコーダが異なる作業負荷を使用しているため、両方のステートメントの結果がfalseになるべきではありませんか?
上記サンプルは、塩を生成する際に、強度のみが使用されるJava 8のソースコードを読む