public string BuildMessage(string msg, string token) { var key = Md5(token); var iv = Md5($"{key}{token}"); var encryptedData = CryptoProvider.EncryptData(iv.ToByteArray(), key.ToByteArray(), Encoding.UTF8.GetBytes(msg)).ToHex(); var dataLength = (encryptedData.Length / 2 + 32).ToString("x").PadLeft(4, '0'); var checksum = Md5($"{_magic}{dataLength}{_unknown1}{_deviceType}{_serial}{_time}{token}{encryptedData}"); return($"{_magic}{dataLength}{_unknown1}{_deviceType}{_serial}{_time}{checksum}{encryptedData}"); }