using System;
using [Link];
using [Link];
using [Link];
class AESExample
{
static void Main(string[] args)
{
string originalText = "Hello, AES Encryption!";
// Generate a random key and IV (Initialization Vector)
using (Aes aes = [Link]())
{
[Link] = GenerateRandomKey(32); // 32 bytes for AES-256
[Link] = GenerateRandomKey(16); // 16 bytes for the IV
[Link]("Original: " + originalText);
// Encrypt the text
string encryptedText = Encrypt(originalText, [Link], [Link]);
[Link]("Encrypted: " + encryptedText);
// Decrypt the text
string decryptedText = Decrypt(encryptedText, [Link], [Link]);
[Link]("Decrypted: " + decryptedText);
}
}
public static string Encrypt(string plainText, byte[] key, byte[] iv)
{
using (Aes aes = [Link]())
{
[Link] = key;
[Link] = iv;
using (MemoryStream memoryStream = new MemoryStream())
using (ICryptoTransform encryptor = [Link]([Link],
[Link]))
using (CryptoStream cryptoStream = new CryptoStream(memoryStream,
encryptor, [Link]))
{
byte[] plainBytes = [Link](plainText);
[Link](plainBytes, 0, [Link]);
[Link]();
return Convert.ToBase64String([Link]());
}
}
}
public static string Decrypt(string cipherText, byte[] key, byte[] iv)
{
using (Aes aes = [Link]())
{
[Link] = key;
[Link] = iv;
using (MemoryStream memoryStream = new
MemoryStream(Convert.FromBase64String(cipherText)))
using (ICryptoTransform decryptor = [Link]([Link],
[Link]))
using (CryptoStream cryptoStream = new CryptoStream(memoryStream,
decryptor, [Link]))
{
byte[] decryptedBytes = new byte[[Link]];
int bytesRead = [Link](decryptedBytes, 0,
[Link]);
return [Link](decryptedBytes, 0, bytesRead);
}
}
}
private static byte[] GenerateRandomKey(int size)
{
using (RandomNumberGenerator rng = [Link]())
{
byte[] key = new byte[size];
[Link](key);
return key;
}
}
}