gpt4 book ai didi

java - 如何使用 jBcrypt 检查 bcrypt 密码? (将存储从 Parse.com 移至 Firebase)

转载 作者:行者123 更新时间:2023-11-30 06:55:13 34 4
gpt4 key购买 nike

一些开发人员需要将存储从 parse.com 转移到另一台服务器。

当我从解析中导出数据时,我得到了 json 数据。此 json 数据具有加密密码 (bcrypt),例如:

$2a$10$pcR4SaZd3PMD/nXQKMssxupMLncDoFwfU7avg/wdpLVChNqGOXbLu

我试着理解,在这种情况下如何检查用户的密码。

我这样使用 jBcrypt:

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");
}
}
}

在这种情况下,密码并不多。但是如果我们去https://www.dailycred.com/article/bcrypt-calculator并尝试将 BCrypt Tester 与哈希、候选字符串和“123”密码一起使用,一切正常。

我如何理解用户的密码是否与 bcrypt 字符串匹配?

最佳答案

BCrypt.checkpw() 将纯文本密码作为第一个参数,然后对其进行哈希处理并将其与第二个参数 ( docs) 进行比较;在你的情况下,你给它一个已经散列的密码作为它的第一个参数,然后它会再次散列因此它不匹配。

关于java - 如何使用 jBcrypt 检查 bcrypt 密码? (将存储从 Parse.com 移至 Firebase),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35523233/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com