我有这个 jOOQ 3.14.4,Scala 2.13 代码,它与一些不推荐使用的Play
代码混合在一起:
val user = Option(sql
.selectFrom(USER)
.where(USER.EMAIL.equal(email))
.and(USER.PASSWORD.equal(crypto.sign(password)))
.fetchOne())
注意email
和password
是String
s。
现在,我想用新的 Java 方法(我从库中获得)替换使用Play
不推荐使用的代码:Crypto
jBCrypt
public static boolean checkpw(String plaintext, String hashed)
BCrypt.checkpw(...)
1. jOOQ代码里面怎么使用?
equal
不返回布尔值,如何提取 USER.PASSWORD 中的实际字符串值TableField
?
使用该BCrypt.checkpw
方法的示例:
// Check that an unencrypted password matches one that has
// previously been hashed
if (BCrypt.checkpw(candidate, hashed))
System.out.println("It matches");
else
System.out.println("It does not match");
2.jBCrypt
从密码学的角度来看,为了加密密码以将其保存在生产数据库中,是否被认为是安全的?