title: MessageDigest MD5 Algorithm not returning what I expect
body: <p>Something in the back of my head is telling me I'm missing something obvious here.</p>
  
  <p>I'm integrating an existing java project with a third-party api that uses an md5 hash of an api key for authentication. It's not working for me, and during debugging I realized that the hashes I'm generating don't match the examples that they've supplied. I've found some websites that create MD5 hashes from strings to check their examples, and as far as I can tell I'm wrong and they're right. </p>
  
  <p>for example, according to <a href="http://md5-hash-online.waraxe.us/" rel="noreferrer">this website</a>, the string "hello" generates a hash of "5d41402abc4b2a76b9719d911017c592". (FWIW I don't know anything about this website except that it seems to correctly hash the examples that I have). When I run it through my code I get: </p>
  
  <p>XUFAKrxLKna5cZ2REBfFkg==</p>
  
  <p>Here is the simple method I'm using to generate the md5 hash/string.:</p>
  
  <pre><code>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());
  }
  </code></pre>
  
  <p>I used a very similar method to successfully authenticate a different API using the SHA1 algorithm last week. I'm wondering if the problem is related to the org.apache.commons.net.util.Base64.encodeBase64String... Any help is greatly appreciated, if only some tests to see if the byteArray is correct but the converted string is wrong. </p>