【发布时间】:2016-07-05 05:47:30
【问题描述】:
我正在将 Spring Security 的 Bcrypt 密码编码器集成到一个新的应用程序中,在测试时我注意到当使用具有不同工作因素的两个编码器匹配密码时,工作负载似乎没有影响。举个例子:
public static void main(String[] args) {
PasswordEncoder strongEncoder = new BCryptPasswordEncoder(12);
PasswordEncoder weakEncoder = new BCryptPasswordEncoder(6);
String password = "SomePassword@@";
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));
}
由于编码器使用不同的工作负载,两个打印语句不应该导致错误吗?
以上示例在 Java 8 中使用 spring-security-core-4.1.0.RELEASE.jar 进行了测试
【问题讨论】:
标签: java spring spring-security bcrypt