title: JAVA Md5 returning non-deterministic results
body: <p>I have written following function to compute Md5 checksum in Java.</p>
  
  <pre><code>class Utils {
   public static String md5Hash(String input) {
          String result = "";
          try {
              System.out.println("Input=" + input);
              final MessageDigest md = MessageDigest.getInstance("MD5");
              md.reset();
              md.update(input.getBytes());
              result = md.digest().toString();
          } catch (Exception ee) {
              System.err.println("Error computing MD5 Hash");
          }
          return result;
      }
  };
  </code></pre>
  
  <p>Calling <code>Utils.md5Hash("abcde")</code>  multiple times gives different results. My understanding says md5 returns a deterministic and unique checksum for a string. Is that wrong? Else please let me know the bug in my implementation. Thanks</p>