Проблема с получением MD5 хеша в Java
Алиса Миронова
Проблема с получением MD5 хеша в Java
Пытаюсь написать java приложение с digest авторизацией. Нашла код вычисления MD5, но столкнулась с проблемой: если брать хешируемую строку из String то результат получается неверным, но если я побайтно читаю эти данные из файла - все правильно...
Код:
private void hash_calc () throws Exception{
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] dataBytes = new byte[1024];
String my = "8:asterisk:123456";
dataBytes = my.getBytes("UTF-8");
md.update(dataBytes);
byte[] mdbytes = md.digest();
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < mdbytes.length; i++) {
sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println(" digest:: " + sb.toString());
}
Этот код дает неправильный ответ: e071fd8c1698eafd264cf7246e575af7
Правильный ответ должен быть: a9ee1797f62b788402b9e8d8aae8f875
Помогите разобраться в чем штука. Сплит по \r не помогает =)
Ответы:
Рыжая Морда
e071fd8c1698eafd264cf7246e575af7 - правильный ответ
а второй получается, если к исходной строке в конце добавить перевод строки
"8:asterisk:123456" + (char) 10;
|