using System.Security.Cryptography;
using System.IO.Compression;
public static void Main()
var key = "AEFD3CCB5BF6E9ACC9997CD2BE2A5914652E0A06F69F560827826452BB8B5039";
var iv = "42951CC818E7CF6C8656223304A446FE";
var input = "tJJZ3ZQlXu/S3pHasc8dXrEGCgC3WOz8y6rrhNUU6Pca6BuYRCBzxUZJZegIoGJbcYpQbBrEWFyXUc9fGZ9Kty8tGsvqWH207WD+XXALxfSSAqg/ZmrRmmvn/E0CLPszNXcrwOYNjE5MQzoc6Cu/0s3ZYwlIeUHewKPhBJtpLdxNyCR5n1NJE/xolpSKddxi3hxndoZrZrkUweUOed+ZjcTB70zPwAwCgWvG6liyPBO0xC7rabD8FaCxcT94nM9TYtvQtD69PGJ2GPgtleFU3/W7szQbK58HIM6Iq/wAMEoqq85I0g9Trh/PYTQ3vMOGJdr9co2zIswFhYEZ1ggQPIRbZls3y7XSoXusI1P5ThlIiNK1tNO2hMeQqsLBH05Leya19w1RERMyIa7+Z5HmTHTHIo9ewHTj6AMdntDdzl83NRmMOFZT6gDoKY1/QgrlKOVuY11lIZ+FB1tH/vWgTZirZ86e1+K4fPF82aHw2pj3W4CAJQiLPbYYJU2nxY9dIMQw58ERZRaMOImHFDOwf2zqmZwMTck8oDGrvzzCLVXcbD7TJOxM1e0gPaTIGO3Vijfgfv6CL36CKYDXQmb3+qViLlitU0QRcsGPFAdYpZVZsfGIeddZ7O//Ema3iukaJOGa3LTEsdu0A2VrKC4aqrV4bM9367JSmfRS3I2w//Ji/LNKE7Ug8e5KFwswxSpR/KeXlWt74UXV4UAJDheM7ZumWUdgeiBu1N5gNI5ECw39d/Sra9sf132PnxDeIPnxTmSPFvYI+Pqe2yQW8+MOb4Zyq/h1DNaLH3k1F/auI09XG/dD0CyC6skbQqFLiWr8jqazmDqe/jqfiQbDY+gCACfUEYcwgEadEm09n1IFihO2OAXnHbfBtIeaxPGTZKgVhfmpJeYyoCDbbCwdVmFp+bUEOAU4qHSzlVMmrJxIIYztt6PTwSDROIQTyX2fpmlRiIs/uN8qyomoV6E8obaoTjQJsyqTQidm042C5JYIQ8D/BA7DUUim4M0iWbB6dvRzmixJtlV7CzkAmuPoiAaIcj9wvz2Q1ciufDauv9pKZ0jE7AbcqWQSeS0OQVGyaBz1ZMWbBPcvZp1/VjXj8ki8fpi6X7yOPYjHYPPTcTBBKdd94WlFQDeKznr8LumBZae+bX+RVIwR7O+a6h4lw2AAphhSWt/UKUmUak1rmQ9WakRWemKRUIbP//wi6sAvbppogrRfxNF7yhl6+SyyjBSr+f4bhHTWPIl2AbsNO4Si4Lx3vfvvWxnulQZLwkMgExUZZaBTWuT39GGKItakC4oukkMDQ+mA1DyBfPi2GHg9KuzXK9uzSvy0USpsoZcl5eUIsuy73DW/KVpYgBbyswOvUYuWhB08LO5UjHdvsXGLmyLkgtuc+ZgNdbx3p8HUPHIizyaGQ2blVI/6ZiwYu+tZvuQJsnPD9LGPUtd+U1U/vMqi1YBk0UY4PDgLxa1y0lFZjC3fxy0/conpi1kyFItxT2gq8KvpHe9RUpMTLK0urE2JBAZ9e5DqrYpkmluUuHSud4L/ge4uxDwny3maXfXvuHi5+EVz/FUKtrId84MqPRxIgWauaC8Q32+GEsqQ4fHsMvvK57x8Lgtt2NkIe7eV57HeGboh8zipgCBh3fHv+maeiQLDij/1wzfhID+c5ht7a1hB55zHB78IaXd0nb3Rp3ifCJMEbXHSnrVbkFIHZUG4Qy4D7nItILIcTgEnmzFrHwPQwYX9wWEOdmrSx50HxC3gfr7T9cO20+BWLKnKUpGbjq8m31r5gxWkhWaFjXSyIhWtuJ5rgdr2ahHvGCaeWZYRudH+BYuhqoSKKKTSd/+EjyBXakH+tZU2O1VcSomX9G4bR4mAbBiFzQUBZTGRJYHJ+RWc7wb1xantoMYUhfoLt5oqsAGKeswc9tRxS0OE";
var pwd = key + "\r\n" + iv;
string decrypted_string = DecryptText(input,pwd);
string gunzip_string = GunZip(decrypted_string);
Console.WriteLine(gunzip_string);
public static byte[] AES_Decrypt(byte[] bytesToBeDecrypted, byte[] passwordBytes, byte[] ivBytes)
byte[] decryptedBytes = null;
byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
using (MemoryStream ms = new MemoryStream())
using (RijndaelManaged AES = new RijndaelManaged())
var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
var iv = new Rfc2898DeriveBytes(ivBytes, saltBytes, 1000);
AES.Key = key.GetBytes(AES.KeySize / 8);
AES.IV = iv.GetBytes(AES.BlockSize / 8);
AES.Mode = CipherMode.CBC;
using (var cs = new CryptoStream(ms, AES.CreateDecryptor(), CryptoStreamMode.Write))
cs.Write(bytesToBeDecrypted, 0, bytesToBeDecrypted.Length);
decryptedBytes = ms.ToArray();
public static string DecryptText(string input, string password)
byte[] bytesToBeDecrypted = Convert.FromBase64String(input);
string[] separators = new string[1];
var _str_key_iv = password.Split(separators, 2, StringSplitOptions.RemoveEmptyEntries);
string key = _str_key_iv[0];
string iv = _str_key_iv[1];
byte[] passwordBytes = Encoding.UTF8.GetBytes(key);
byte[] ivBytes = Encoding.UTF8.GetBytes(iv);
passwordBytes = SHA256.Create().ComputeHash(passwordBytes);
ivBytes = SHA256.Create().ComputeHash(ivBytes);
byte[] bytesDecrypted = AES_Decrypt(bytesToBeDecrypted, passwordBytes, ivBytes);
string result = Encoding.UTF8.GetString(bytesDecrypted);
public static string GunZip(string input)
byte[] inputBytes = Convert.FromBase64String(input);
using (var inputStream = new MemoryStream(inputBytes))
using (var gZipStream = new GZipStream(inputStream, CompressionMode.Decompress))
using (var streamReader = new StreamReader(gZipStream))
return streamReader.ReadToEnd();