gpt4 book ai didi

java - 比较两个加密密码的情况

转载 作者:行者123 更新时间:2023-12-01 17:00:38 25 4
gpt4 key购买 nike

我正在尝试实现一个登录检查器,该函数从 GUI 获取凭据并比较用户、加密的密码,我不知道如何将输入给出的密码与密码中的密码进行比较.json 文件

该函数如下所示:

public static void checkUsers(String username,String password,String role) {
for (User user : users) {
if (Objects.equals(username, user.getUsername()))
{
//passwords to be compared
}
}

加密如下所示:

  public static String encodePassword(String salt, String password) {
MessageDigest md = getMessageDigest();
md.update(salt.getBytes(StandardCharsets.UTF_8));

byte[] hashedPassword = md.digest(password.getBytes(StandardCharsets.UTF_8));

// This is the way a password should be encoded when checking the credentials
return new String(hashedPassword, StandardCharsets.UTF_8)
.replace("\"", ""); //to be able to save in JSON format
}

private static MessageDigest getMessageDigest() {
MessageDigest md;
try {
md = MessageDigest.getInstance("SHA-512");
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("SHA-512 does not exist!");
}
return md;
}

最佳答案

对于固定盐和固定密码,哈希算法将始终返回固定摘要。对于每个用户,您需要存储盐和摘要。当用户想要登录时,您必须提供他们个人的盐。他们会计算摘要并将其返回给您。然后,您的任务是将他们返回的摘要与您存储的摘要进行比较,这将确认他们输入了正确的密码。

关于java - 比较两个加密密码的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61509435/

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