using System;
using System.Security.Cryptography;
using System.Text;
public class AESExample
{
public static string EncryptString(string plainText, byte[] key, byte[] iv)
{
using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider())
{
aes.Key = key;
aes.IV = iv;
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
byte[] encryptedBytes = null;
using (var ms = new System.IO.MemoryStream())
{
using (var cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
byte[] plainBytes = Encoding.UTF8.GetBytes(plainText);
cs.Write(plainBytes, 0, plainBytes.Length);
}
encryptedBytes = ms.ToArray();
}
return Convert.ToBase64String(encryptedBytes);
}
}
public static string DecryptString(string encryptedText, byte[] key, byte[] iv)
{
using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider())
{
aes.Key = key;
aes.IV = iv;
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
byte[] encryptedBytes = Convert.FromBase64String(encryptedText);
byte[] decryptedBytes = null;
using (var ms = new System.IO.MemoryStream(encryptedBytes))
{
using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
{
byte[] buffer = new byte[encryptedBytes.Length];
int bytesRead = cs.Read(buffer, 0, buffer.Length);
decryptedBytes = new byte[bytesRead];
Array.Copy(buffer, decryptedBytes, bytesRead);
}
}
return Encoding.UTF8.GetString(decryptedBytes);
}
}
}
在`EncryptString`方法中,我们使用了`AesCryptoServiceProvider`来创建加密器,并将密钥和初始化向量设置为提供的`key`和`iv`。然后,我们使用加密器来加密字符串,并将结果转换为Base64字符串返回。
在`DecryptString`方法中,我们使用了`AesCryptoServiceProvider`来创建解密器,并将密钥和初始化向量设置为提供的`key`和`iv`使用解密器来解密Base64编码的加密文本,并将结果转换为字符串返回。