code: public static String H(String data) {
          try {
              MessageDigest digest = MessageDigest.getInstance("MD5");
  
              return toHexString(digest.digest(data.getBytes()));
          } catch (NoSuchAlgorithmException ex) {
              // shouldn't happen
              logger.error("Failed to instantiate an MD5 algorithm", ex);
              return null;
          }
      }
docs: Defined in rfc 2617 as H(data) = MD5(data);
  
  @param data data
  @return MD5(data)