using System.Security.Cryptography;
public AES(string password)
this.key = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(password));
private byte[] PerformCryptography(ICryptoTransform cryptoTransform, byte[] data)
using (MemoryStream memoryStream = new MemoryStream())
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoTransform, CryptoStreamMode.Write))
cryptoStream.Write(data, 0, data.Length);
cryptoStream.FlushFinalBlock();
result = memoryStream.ToArray();
public byte[] Decrypt(byte[] data)
using (AesCryptoServiceProvider aesCryptoServiceProvider = new AesCryptoServiceProvider())
byte[] iv = data.Take(16).ToArray<byte>();
byte[] data2 = data.Skip(16).Take(data.Length - 16).ToArray<byte>();
aesCryptoServiceProvider.Key = this.key;
aesCryptoServiceProvider.IV = iv;
aesCryptoServiceProvider.Mode = CipherMode.CBC;
aesCryptoServiceProvider.Padding = PaddingMode.PKCS7;
using (ICryptoTransform cryptoTransform = aesCryptoServiceProvider.CreateDecryptor(aesCryptoServiceProvider.Key, aesCryptoServiceProvider.IV))
result = this.PerformCryptography(cryptoTransform, data2);
public static void Main(string[] args)
byte[] bytes = System.Convert.FromBase64String("mQe7Z54XZdy9tGfBxLANITs/cIZ53BLlNS/0rA+732pX5PoJSk0D/7qe8lHCxXEA3wTf+ILc1Dc+DQu6XGtkLE5Nfi5GvSXCDFhlwCf6wMrYoBINPl79Mcjxb7h7+QcYuRtHWS+siDTcGxyS0e+gCH7dZ4dGQhwB1NIqo7YAZJ2qzX8NL36anJBXwT6meYwVj9hD3lVlQqxHfyD2OG31NaXdRhmbFouysT3DLuHJ1LIBR0QtCN/RlBrgNLX/dqifAc3xajXiV5J8qgLStlS7hd4nV6CkJ5NyG7wlfZC3V90IR9Mxd2u2uWgAFo8SIEk4++wAPOmrXpC1vFe5rHnvxAUWMCi9DElNR9tPlz1D3WLfHuuAkQWv/21uig6mU+ycA6YglUmB9lvbRxSrvc8WE/znqETwx5TdK6GBFDX6Yu7Sw9p1NDe8qkcic57DZeHW");
byte[] array = new AES("z64&Rx27Z$B%73up").Decrypt(bytes);
public static string ByteArrayToString(byte[] ba)
StringBuilder hex = new StringBuilder(ba.Length * 2);
hex.Append(@"\x").AppendFormat("{0:x2}", b);