docs: public static byte[] encode(byte[] user, byte[] password, byte[] salt) {
      MessageDigest md;
      byte[] tempDigest;
      byte[] passDigest;
      byte[] hexDigest = new byte[35];
  
      try {
        md = MessageDigest.getInstance("MD5");
  
        md.update(password);
        md.update(user);
        tempDigest = md.digest();
  
        bytesToHex(tempDigest, hexDigest, 0);
        md.update(hexDigest, 0, 32);
        md.update(salt);
        passDigest = md.digest();
  
        bytesToHex(passDigest, hexDigest, 3);
        hexDigest[0] = (byte) 'm';
        hexDigest[1] = (byte) 'd';
        hexDigest[2] = (byte) '5';
      } catch (NoSuchAlgorithmException e) {
        throw new IllegalStateException("Unable to encode password with MD5", e);
      }
  
      return hexDigest;
    }