BCrypt 检查是否已经加密?

Sun*_*mov 3 java encryption spring cryptography bcrypt

我的问题是如何检查密码是否已经用 Bcrypt 加密。如果是,让 Bcrypt 什么都不做,只需保留密码。我正在使用 Java(EE),Spring。

public static String hashPassword(String userPassword) {
    String bCrypt = null;
    if (userPassword == null)
        throw new NullPointerException("Input password for hashing was null.");
    bCrypt = BCrypt.hashpw(userPassword, BCrypt.gensalt(12));
    return bCrypt;
}
Run Code Online (Sandbox Code Playgroud)

小智 7

没有办法检查是否应用了 bcrypt 算法,因为可以巧合地创建一个类似于 bcrypt 的密码,但是您可以使用一个技巧:让密码不能超过 40 个字符,然后检查密码是否大于 59 个字符(或根据您的逻辑进行更好的调整),因此您可以推断密码是否已被 bcrypted。