code: static String hashMD5(String s) throws ApiDataException {
          MessageDigest algorithm = null;
          try {
              algorithm = MessageDigest.getInstance("MD5");
          } catch (NoSuchAlgorithmException nsae) {
              throw new ApiDataException("Cannot find MD5 digest algorithm");
          }
          byte[] defaultBytes = new byte[s.length()];
          for (int i = 0; i < s.length(); i++) {
              defaultBytes[i] = (byte) (0xFF & s.charAt(i));
          }
          algorithm.reset();
          algorithm.update(defaultBytes);
          byte messageDigest[] = algorithm.digest();
          StringBuilder hexString = new StringBuilder();
          for (int i = 0; i < messageDigest.length; i++) {
              String hex = Integer.toHexString(0xFF & messageDigest[i]);
              if (hex.length() == 1) {
                  hexString.append('0');
              }
              hexString.append(hex);
          }
          return hexString.toString();
      }
docs: makes MD5 hash of string for use with RouterOS API
  
  @param s - variable to make hash from
  @return - the md5 hash