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 является правильным, но преобразованная строка неверна ,