jBCrypt 是 OpenBSD Blowfish 密码散列算法的实现,如 Niels Provos 和 David Mazieres 在“A Future-Adaptable Password Scheme”中所述。
该系统使用 Bruce Schneier 的 Blowfish 块密码的一个版本对密码进行哈希处理,其修改旨在提高离线密码破解的成本。 该算法的计算成本是参数化的,因此可以随着计算机速度的提高而增加。
1、生成密码示例
String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt());
2、校验密码示例
if (BCrypt.checkpw(candidate_password, stored_hash)) {
System.out.println("It matches"); } else {
System.out.println("It does not match");
}
The gensalt() 生成盐的方法默认入参是10,你也可以设置复杂的入参,有效的数值在(4-30)
String strong_salt = BCrypt.gensalt(10)
String stronger_salt = BCrypt.gensalt(12)