AES встроен в среду как класс Aes в System.Security.Cryptography. Существует две конкретные реализации, одна управляемая, другая с использованием Windows Crypto Service Provider (более быстрая, но не переносимая на другие платформы). Также есть реализация Rijndael , из которой происходит AES.
Помните, что вам нужен вектор инициализации, а также ключ для шифрования / дешифрования, так как это блочный шифр. Если вы шифруете без установки одного, будет использоваться случайный, но вам нужно будет сохранить и получить его для расшифровки.
Пример кода: (взято из главы 6 моей будущей книги ухмылка )
static byte[] Encrypt(byte[] clearText, byte[] key, byte[] iv)
{
// Create an instance of our encyrption algorithm.
RijndaelManaged rijndael = new RijndaelManaged();
// Create an encryptor using our key and IV
ICryptoTransform transform = rijndael.CreateEncryptor(key, iv);
// Create the streams for input and output
MemoryStream outputStream = new MemoryStream();
CryptoStream inputStream = new CryptoStream(
outputStream,
transform,
CryptoStreamMode.Write);
// Feed our data into the crypto stream.
inputStream.Write(clearText, 0, clearText.Length);
// Flush the crypto stream.
inputStream.FlushFinalBlock();
// And finally return our encrypted data.
return outputStream.ToArray();
}
и расшифровать
static byte[] Decyrpt(byte[] clearText, byte[] key, byte[] iv)
{
// Create an instance of our encryption algorithm.
RijndaelManaged rijndael = new RijndaelManaged();
// Create an decryptor using our key and IV
ICryptoTransform transform = rijndael.CreateDecryptor(key, iv);
// Create the streams for input and output
MemoryStream outputStream = new MemoryStream();
CryptoStream inputStream = new CryptoStream(
outputStream,
transform,
CryptoStreamMode.Write);
// Feed our data into the crypto stream.
inputStream.Write(clearText, 0, clearText.Length);
// Flush the crypto stream.
inputStream.FlushFinalBlock();
// And finally return our decrypted data.
return outputStream.ToArray();
}
заменить класс RijndaelManaged одним из классов AES и подходящим ключом.