Programmer's Highway

C# Tips and simple code

I'm very sorry for machine translation in English.

C# AES Encryption

.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.

Visual Studio 2010 .NET Framework 4