MessageDigest Algoritmo MD5 não retornando o que eu esperava

Algo na parte de trás da minha cabeça está me dizendo que estou perdendo algo óbvio aqui.

Estou integrando um projeto java existente com uma API de terceiros que usa um hash md5 de uma chave de API para autenticação. Não está funcionando para mim e, durante a depuração, percebi que os hashes que estou gerando não correspondem aos exemplos que eles forneceram. Eu encontrei alguns sites que criam hashes MD5 a partir de seqüências de caracteres para verificar seus exemplos, e tanto quanto eu posso dizer que estou errado e eles estão certos.

por exemplo, de acordo comesse site, a string "hello" gera um hash de "5d41402abc4b2a76b9719d911017c592". (FWIW Eu não sei nada sobre este site, exceto que parece corretamente hash os exemplos que eu tenho). Quando eu corro através do meu código eu recebo:

XUFAKrxLKna5cZ2REBfFkg ==

Aqui está o método simples que estou usando para gerar o hash / string 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());
}

Eu usei um método muito semelhante para autenticar com sucesso uma API diferente usando o algoritmo SHA1 na semana passada. Eu estou querendo saber se o problema está relacionado com o org.apache.commons.net.util.Base64.encodeBase64String ... Qualquer ajuda é muito apreciada, se apenas alguns testes para ver se o byteArray está correto, mas a cadeia convertida está errada .

questionAnswers(2)

yourAnswerToTheQuestion