I'm very sorry for machine translation in English.
.NET Framework provides class encryption standard because it is easy, it is possible to perform encryption and decryption easier.
The sample code performs encryption and decryption using a fixed encryption key.
using System.IO; using System.Security.Cryptography;
// 128bit(16byte)IV and Key private const string AesIV = @"!QAZ2WSX#EDC4RFV"; private const string AesKey = @"5TGB&YHN7UJM(IK<"; /// <summary> /// AES Encryption /// </summary> private string Encrypt(string text) { // AesCryptoServiceProvider AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); aes.BlockSize = 128; aes.KeySize = 128; aes.IV = Encoding.UTF8.GetBytes(AesIV); aes.Key = Encoding.UTF8.GetBytes(AesKey); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; // Convert string to byte array byte[] src = Encoding.Unicode.GetBytes(text); // encryption using (ICryptoTransform encrypt = aes.CreateEncryptor()) { byte[] dest = encrypt.TransformFinalBlock(src, 0, src.Length); // Convert byte array to Base64 strings return Convert.ToBase64String(dest); } } /// <summary> /// AES decryption /// </summary> private string Decrypt(string text) { // AesCryptoServiceProvider AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); aes.BlockSize = 128; aes.KeySize = 128; aes.IV = Encoding.UTF8.GetBytes(AesIV); aes.Key = Encoding.UTF8.GetBytes(AesKey); aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; // Convert Base64 strings to byte array byte[] src = System.Convert.FromBase64String(text); // decryption using (ICryptoTransform decrypt = aes.CreateDecryptor()) { byte[] dest = decrypt.TransformFinalBlock(src, 0, src.Length); return Encoding.Unicode.GetString(dest); } }
The sample has been fixed string Key and IV, with respect to IV will automatically generate program, I may be added to the beginning of the encrypted string.
Encrypted data is a byte array, has been converted to a string of Base64 format so cumbersome as it is.