【发布时间】:2021-04-03 14:54:02
【问题描述】:
我有这个 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 是 Strings。
现在,我想用新的 Java 方法(我从 jBCrypt 库中获得)替换使用 Play 已弃用 Crypto 的代码:
public static boolean checkpw(String plaintext, String hashed)
1.如何在 jOOQ 代码中使用BCrypt.checkpw(...)?
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 是否被认为是安全的,用于加密密码以将其保存在生产数据库中?
【问题讨论】:
标签: scala cryptography jooq password-encryption jbcrypt