Я пытаюсь реализовать проверку входа, функция получает учетные данные от 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;
}