How to encrypt and decrypt using cryptography (AES)?

How to encrypt and decrypt using cryptography (AES)?

Encryption Code

public static string Encrypt(string cipherText)
{
   if (cipherText == null)
   return null;
 
   byte[] clearBytes = Encoding.Unicode.GetBytes(cipherText);
   using (Aes encryptor = Aes.Create())
   {
        Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(CryptKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
        encryptor.Key = pdb.GetBytes(32);
        encryptor.IV = pdb.GetBytes(16);
        using (MemoryStream ms = new MemoryStream())
        {
              using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
              {
                   cs.Write(clearBytes, 0, clearBytes.Length);
                    cs.Close();
              }
              cipherText = Convert.ToBase64String(ms.ToArray());
        }
    }
    return cipherText;
 }

Decryption Code

public static string Decrypt(string cipherText)
{
    if (cipherText == null)
    return null;
    byte[] cipherBytes = Convert.FromBase64String(cipherText);
    using (Aes encryptor = Aes.Create())
    {
        Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(CryptKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
        encryptor.Key = pdb.GetBytes(32);
        encryptor.IV = pdb.GetBytes(16);
        using (MemoryStream ms = new MemoryStream())
        {
            using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
            {
                cs.Write(cipherBytes, 0, cipherBytes.Length);
                cs.Close();
           }
           cipherText = Encoding.Unicode.GetString(ms.ToArray());
       }
    }
    return cipherText;
}

Usage

var textToEncrypt = "TestEncrypt";
var encrypted = Encrypt(textToEncrypt);
var decrypted = Decrypt(encrypted);

Leave a Reply

Your email address will not be published. Required fields are marked *