using System.Collections.Generic;
using System.Security.Cryptography;
using System.Threading.Tasks;
public static void Main()
string Encrypt = NewMethod(key, text);
string Decrypt = NewMethod(key, Encrypt);
Console.WriteLine(Encrypt);
Console.WriteLine(Decrypt);
private static string NewMethod(string key, string text)
RijndaelManaged AesEncryption = new RijndaelManaged();
AesEncryption.KeySize = 256;
AesEncryption.BlockSize = 128;
AesEncryption.Mode = CipherMode.CBC;
AesEncryption.Padding = PaddingMode.PKCS7;
AesEncryption.Key = GetByteKey(key);
ICryptoTransform crypto = AesEncryption.CreateEncryptor();
var plainText = ASCIIEncoding.UTF8.GetBytes(text);
var encrypted = crypto.TransformFinalBlock(plainText, 0, plainText.Length);
string dataStr = Convert.ToBase64String(encrypted);
private static string NewMethod2(string key, string dataStr)
RijndaelManaged AesEncryption = new RijndaelManaged();
AesEncryption.KeySize = 256;
AesEncryption.BlockSize = 128;
AesEncryption.Mode = CipherMode.CBC;
AesEncryption.Padding = PaddingMode.PKCS7;
AesEncryption.Key = GetByteKey(key);
string encryptedData = dataStr;
ICryptoTransform decryptor = AesEncryption.CreateDecryptor();
var encrypted = Convert.FromBase64String(encryptedData);
string text = ASCIIEncoding.UTF8.GetString(decryptor.TransformFinalBlock(encrypted, 0, encrypted.Length));
public static byte[] GetByteKey(string input)
using (MD5 md5Hash = MD5.Create())
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
sBuilder.Append(data[i].ToString("x2"));
byte[] bytes = Encoding.ASCII.GetBytes(sBuilder.ToString());
return bytes.Take(16).ToArray();