在C#中实现AES加密可以通过使用AesManaged
类来实现。下面是一个简单的示例代码:
usingSystem;
usingSystem.IO;
usingSystem.Security.Cryptography;
usingSystem.Text;
publicclassAesEncryption
{
publicstaticstringEncrypt(stringplainText,stringkey,stringiv)
{
byte[]keyBytes=Encoding.UTF8.GetBytes(key);
byte[]ivBytes=Encoding.UTF8.GetBytes(iv);
byte[]encryptedBytes;
using(AesManagedaes=newAesManaged())
{
aes.Key=keyBytes;
aes.IV=ivBytes;
ICryptoTransformencryptor=aes.CreateEncryptor(aes.Key,aes.IV);
using(MemoryStreamms=newMemoryStream())
{
using(CryptoStreamcs=newCryptoStream(ms,encryptor,CryptoStreamMode.Write))
{
using(StreamWritersw=newStreamWriter(cs))
{
sw.Write(plainText);
}
encryptedBytes=ms.ToArray();
}
}
}
returnConvert.ToBase64String(encryptedBytes);
}
publicstaticstringDecrypt(stringencryptedText,stringkey,stringiv)
{
byte[]keyBytes=Encoding.UTF8.GetBytes(key);
byte[]ivBytes=Encoding.UTF8.GetBytes(iv);
byte[]encryptedBytes=Convert.FromBase64String(encryptedText);
stringdecryptedText;
using(AesManagedaes=newAesManaged())
{
aes.Key=keyBytes;
aes.IV=ivBytes;
ICryptoTransformdecryptor=aes.CreateDecryptor(aes.Key,aes.IV);
using(MemoryStreamms=newMemoryStream(encryptedBytes))
{
using(CryptoStreamcs=newCryptoStream(ms,decryptor,CryptoStreamMode.Read))
{
using(StreamReadersr=newStreamReader(cs))
{
decryptedText=sr.ReadToEnd();
}
}
}
}
returndecryptedText;
}
}
使用以上代码,你可以通过调用AesEncryption.Encrypt
方法进行加密,调用AesEncryption.Decrypt
方法进行解密。请注意,你需要提供一个密钥(key
)和一个初始化向量(iv
),这两个值必须是相同的才能正确解密。