Main是测试函数
internal class AES
{
/// <summary>
/// key is required to be 32bit
/// eg. @"ae125efkk4_54eeff444ferfkny6oxi8"
/// </summary>
/// <param name="key"></param>
public AES(string key)
{
Aes aes = Aes.Create();
aes.Key = Encoding.UTF8.GetBytes(key);
aes.Padding= PaddingMode.PKCS7;
aes.Mode = CipherMode.ECB;
encryptor = aes.CreateEncryptor();
decryptor=aes.CreateDecryptor();
}
private ICryptoTransform encryptor;
private ICryptoTransform decryptor;
/// <summary>
/// AES加密
/// </summary>
/// <param name="plainStr">明文字符串</param>
/// <returns>密文</returns>
public string AESEncrypt(string encryptStr)
{
byte[] toEncryptArray = Encoding.UTF8.GetBytes(encryptStr);
byte[] resultArray = encryptor.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
public string AESDecrypt(string encryptStr)
{
byte[] toEncryptArray = Convert.FromBase64String(encryptStr);
byte[] resultArray = decryptor.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Encoding.UTF8.GetString(resultArray);
}
public static void Main()
{
AES aes = new AES(@"ae125efkk4_54eeff444ferfkny6oxi8");
string source = @"rnm";
var encrypted = aes.AESEncrypt(source);
Console.WriteLine("encrypt:"+encrypted);
var dst=aes.AESDecrypt(encrypted);
Console.WriteLine("dst:"+dst);
}
}