MessageDigest MD5 Алгоритм не возвращает то, что я ожидаю
Что-то в затылке говорит мне, что я упускаю что-то очевидное здесь.
Я интегрирую существующий Java-проект со сторонним API, который использует для аутентификации хэш md5 ключа API. Это не работает для меня, и во время отладки я понял, что генерируемые хэши не соответствуют предоставленным ими примерам. Я нашел несколько сайтов, которые создают MD5-хэши из строк, чтобы проверить их примеры, и, насколько я могу судить, я ошибаюсь, и они правы.
например, согласноэтот сайтстрока "hello" генерирует хэш "5d41402abc4b2a76b9719d911017c592". (FWIW Я ничего не знаю об этом сайте, кроме того, что он, кажется, правильно хэширует примеры, которые у меня есть). Когда я запускаю его через мой код, я получаю:
XUFAKrxLKna5cZ2REBfFkg ==
Вот простой метод, который я использую для генерации хеша / строки md5.
private String md5(String md5Me) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
md.reset();
md.update(md5Me.getBytes("UTF-8"));
return Base64.encodeBase64String(md.digest());
}
На прошлой неделе я использовал очень похожий метод для успешной аутентификации другого API с использованием алгоритма SHA1. Мне интересно, если проблема связана с org.apache.commons.net.util.Base64.encodeBase64String ... Любая помощь очень ценится, если только некоторые тесты, чтобы увидеть, если byteArray является правильным, но преобразованная строка неверна ,