Hello. The task is to encrypt and decrypt the text, which is most likely encoded in Deflate + base64. Request example:

<iq from='masterserver@cocbuilder/pve' to='660748410@warface/GameClient' xml:lang='en' id='uid0000000e' type='result'><query xmlns='urn:netw:k01'><data query_name='items' code='2' from='2000' to='2250' hash='-1840816409' compressedData='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' originalSize='19296'/></query></iq> 

The encrypted text is contained in the CompressedData attribute.

You need to decrypt and learn how to encrypt text in this way. Wandered around the Internet a lot, but to no avail. This service could decrypt http://txtwizard.net/compression

Who can, help write the 2nd functions to decrypt and encrypt this text in C #. Who will help, thank you so much!

  • This is not encryption, but compression and conversion to base64 for transmission over the network. - Bulson
  • Compression example here - Bulson
  • If you convert your text into base64 bytes and try to decompress it via deflate, it gives the error Block length does not match with its complement. so most likely there is not deflate. (more precisely, there deflate + two bytes in front of it - zlib) - PashaPash
  • run the line through Convert.FromBase64Strin, the received bytes - through ZlibStream from dotnetzip. And back for compression. - PashaPash
  • Pavel, thank you so much! - Ilya Petrov

1 answer 1

Solved. The topic can be closed. Instead of DeflateStream you need to use ZlibStream from DotNetZip

Thank you very much PashaPash for the decision.

Code:

 internal class DeflateTool { internal static string Decode(string base64encoded) { byte[] buff = Convert.FromBase64String(base64encoded); using (ZlibStream StreamZlib = new ZlibStream(new MemoryStream(buff), Ionic.Zlib.CompressionMode.Decompress)) { return new StreamReader(StreamZlib).ReadToEnd(); } } internal static string Encode(string text) { byte[] buff = Encoding.UTF8.GetBytes(text); using (ZlibStream StreamZlib = new ZlibStream(new MemoryStream(buff), Ionic.Zlib.CompressionMode.Compress)) { return Convert.ToBase64String(ReadStream(StreamZlib)); } } internal static byte[] ReadStream(Stream input) { byte[] buffer = new byte[16 * 1024]; using (MemoryStream ms = new MemoryStream()) { int read; while ((read = input.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, read); } return ms.ToArray(); } } }