У меня есть объект с именем users, который я использую для хранения пользовательских объектов, имеющих учетную информацию.
Я вызываю этот код, чтобы сделать нового пользователя по умолчанию.
user def = new user("admin","admin",md5hash(("osa").toCharArray()),1,-1);
Этот пользователь def добавлен в массив.
Эти пользователи хранятся в массиве. Когда я перебираю массив для проверки, является ли он действительным или нет, я использую этот фрагмент кода для вывода информации о пользователях внутри массива, а именно имени пользователя и пароля в строковом формате из байтового массива.
System.out.println(userarray.get(x).username);
System.out.println((userarray.get(x).password).toString());
Все пароли зашифрованы в md5 и хранятся в виде байтового массива с использованием этого кода:
byte[] md5hash(char[] passwd) {
String passwdtext = new String(passwd);
byte[] passdigest = null;
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.reset();
md5.update(passwdtext.getBytes("UTF-8"));
passdigest = md5.digest();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return passdigest;
}
Когда я пытаюсь ввести «admin» для пользователя и «osa» для пароля, я также выводю их и сравниваю со значениями в массиве
Я получаю следующее:
admin [B@2b12e7f7
и сравните со значением внутри массива:
admin [B @ 663b1f38
Почему они разные?