c#实现aes加密
下面是一个C#中使用AES加密的示例代码:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
string plainText = "Hello World!";
string key = "12345678901234567890123456789012";
string iv = "1234567890123456";
byte[] encryptedBytes = EncryptStringToBytes(plainText, key, iv);
string decryptedText = DecryptStringFromBytes(encryptedBytes, key, iv);
Console.WriteLine("Plain Text: " + plainText);
Console.WriteLine("Encrypted Text: " + Convert.ToBase64String(encryptedBytes));
Console.WriteLine("Decrypted Text: " + decryptedText);
}
static byte[] EncryptStringToBytes(string plainText, string key, string iv)
{
byte[] keyBytes = Encoding.UTF8.GetBytes(key);
byte[] ivBytes = Encoding.UTF8.GetBytes(iv);
using (Aes aes = Aes.Create())
{
aes.Key = keyBytes;
aes.IV = ivBytes;
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText);
cs.Write(plainTextBytes, 0, plainTextBytes.Length);
}
return ms.ToArray();
}
}
}
static string DecryptStringFromBytes(byte[] cipherText, string key, string iv)
{
byte[] keyBytes = Encoding.UTF8.GetBytes(key);
byte[] ivBytes = Encoding.UTF8.GetBytes(iv);
using (Aes aes = Aes.Create())
{
aes.Key = keyBytes;
aes.IV = ivBytes;
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(cipherText))
{
using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
{
byte[] decryptedBytes = new byte[cipherText.Length];
int decryptedByteCount = cs.Read(decryptedBytes, 0, decryptedBytes.Length);
return Encoding.UTF8.GetString(decryptedBytes, 0, decryptedByteCount);
}
}
}
}
}
在上述代码中,我们使用Aes类来创建AES加密算法对象,然后使用给定的密钥和初始向量(IV)对明文进行加密。加密和解密过程使用CryptoStream类来进行数据流的加密和解密操作。最后,我们将加密后的字节数组转换为Base64字符串进行输出
原文地址: https://www.cveoy.top/t/topic/iAWR 著作权归作者所有。请勿转载和采集!