Java 如何使用jBcrypt检查bcrypt密码?(将存储从Parse.com移动到Firebase)
一些开发人员需要将存储从parse.com移动到另一台服务器 当我从parse导出数据时,我得到了json数据。此json数据具有加密密码(bcrypt),如: $2a$10$pcR4SaZd3PMD/NXQKMSSXUPMLNCDOFFU7AVG/wdpLVChNqGOXbLu 我试图理解,在这种情况下如何检查用户的密码 我使用jBcrypt的方式如下:Java 如何使用jBcrypt检查bcrypt密码?(将存储从Parse.com移动到Firebase),java,parse-platform,cryptography,firebase,bcrypt,Java,Parse Platform,Cryptography,Firebase,Bcrypt,一些开发人员需要将存储从parse.com移动到另一台服务器 当我从parse导出数据时,我得到了json数据。此json数据具有加密密码(bcrypt),如: $2a$10$pcR4SaZd3PMD/NXQKMSSXUPMLNCDOFFU7AVG/wdpLVChNqGOXbLu 我试图理解,在这种情况下如何检查用户的密码 我使用jBcrypt的方式如下: import org.mindrot.jbcrypt.BCrypt; public class Main { public st
import org.mindrot.jbcrypt.BCrypt;
public class Main {
public static void main(String[] args) {
String candidate = "$2a$10$pcR4SaZd3PMD/nXQKMssxupMLncDoFwfU7avg/wdpLVChNqGOXbLu";
String password = "123";
String hashed = BCrypt.hashpw(password, BCrypt.gensalt());
if (BCrypt.checkpw(candidate, hashed)) {
System.out.println("It matches");
}
else {
System.out.println("It does not match");
}
}
}
在这种情况下,密码不太重要。但是如果我们去
并尝试使用BCrypt测试仪和散列、候选字符串和“123”密码,一切正常
如何理解用户的密码是否与bcrypt字符串匹配?bcrypt.checkpw()
将纯文本密码作为第一个参数,然后将其散列并与第二个参数()进行比较;在您的例子中,您将给它一个已经散列的密码作为第一个参数,然后它将再次散列,因此它不匹配 也用于测试