Code mã hóa:
// Mã hóa chuỗi AES
public static string AES_Encrypt_String(string input, string password)
{
var AES = new RijndaelManaged();
var Hash_AES = new MD5CryptoServiceProvider();
string encrypted = string.Empty;
if (input.Length != 0)
{
try
{
var hash = new byte[32];
var temp = Hash_AES.ComputeHash(Encoding.UTF8.GetBytes(password));
Array.Copy(temp, 0, hash, 0, 16);
Array.Copy(temp, 0, hash, 15, 16);
AES.Key = hash;
AES.Mode = CipherMode.ECB;
AES.Padding = PaddingMode.PKCS7;
ICryptoTransform AESEncrypter = AES.CreateEncryptor();
var Buffer = Encoding.UTF8.GetBytes(input);
encrypted = Convert.ToBase64String(AESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
return encrypted;
}
Code giải mã:
// Giải mã chuỗi AES
public static string AES_Decrypt_String(string input, string password)
{
var AES = new RijndaelManaged();
var Hash_AES = new MD5CryptoServiceProvider();
string decrypted = string.Empty;
if (input.Length != 0)
{
try
{
var hash = new byte[32];
var temp = Hash_AES.ComputeHash(Encoding.UTF8.GetBytes(password));
Array.Copy(temp, 0, hash, 0, 16);
Array.Copy(temp, 0, hash, 15, 16);
AES.Key = hash;
AES.Mode = CipherMode.ECB;
AES.Padding = PaddingMode.PKCS7;
ICryptoTransform AESDecrypter = AES.CreateDecryptor();
var Buffer = Convert.FromBase64String(input);
decrypted = Encoding.UTF8.GetString(AESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
return decrypted;
}