code: public static String encode(byte[] binaryData) {
          if (binaryData.length != 16)
              return null;
  
          char[] buffer = new char[32];
  
          for (int i = 0; i < 16; i++) {
              int low = (int) (binaryData[i] & 0x0f);
              int high = (int) ((binaryData[i] & 0xf0) >> 4);
              buffer[i * 2] = hexadecimal[high];
              buffer[i * 2 + 1] = hexadecimal[low];
          }
  
          return new String(buffer);
  
      }
docs: Encodes the 128 bit (16 bytes) MD5 into a 32 character String.
  
  @param binaryData Array containing the digest
  @return Encoded MD5, or null if encoding failed