java - BCrypt 检查是否已经加密?

标签 java spring encryption 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;
}

最佳答案

没有办法检查是否应用了 bcrypt 算法,因为可以创建一个与 bcrypt 恰好相似的密码,但是您可以使用一个技巧:让密码不允许超过 40 个字符,然后检查如果密码大于 59 个字符(或者根据您的逻辑进行更好的调整),则您可以推断密码是否已被加密。

关于java - BCrypt 检查是否已经加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629917/

相关文章:

java - Spring MVC请求映射冲突

java - WEB-INF/myproject-servlet.xml 与 WEB-INF/web.xml

linux - 如何保护 HAProxy SSL 证书即服务?

java - 如何扫描图像文件夹并将其添加到图像数组

java - 正则表达式模式灾难性回溯

java - 如何解包和重新打包 WAR 文件

java - @Validated 服务无法 Autowiring 自身

objective-c - iOS 5 - Rails 3 服务器 - 共享 key

security - LDAP认证密码加密

java - em.persist 似乎不会在 postgreSQL 数据库上保留数据