SymmetricAlgorithm.CreateEncryptor Method ()


Creates a symmetric encryptor object with the current Key property and initialization vector (IV).

Namespace:   System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)

public virtual ICryptoTransform CreateEncryptor()

Return Value

Type: System.Security.Cryptography.ICryptoTransform

A symmetric encryptor object.

If the current Key property is null, the GenerateKey method is called to create a new random Key. If the current IV property is null, the GenerateIV method is called to create a new random IV.

Use the CreateDecryptor overload with the same signature to decrypt the result of this method.

The following example encrypts a string using the transform object returned from the CreateEncryptor method.

using System;
using System.Security.Cryptography;
using System.Text;

class EncryptorExample
     private static string quote =
         "Things may come to those who wait, but only the " +
         "things left by those who hustle. -- Abraham Lincoln";

     public static void Main()
         AesCryptoServiceProvider aesCSP = new AesCryptoServiceProvider();

         byte[] encQuote = EncryptString(aesCSP, quote);

         Console.WriteLine("Encrypted Quote:\n");

         Console.WriteLine("\nDecrypted Quote:\n");
         Console.WriteLine(DecryptBytes(aesCSP, encQuote));

     public static byte[] EncryptString(SymmetricAlgorithm symAlg, string inString)
         byte[] inBlock = UnicodeEncoding.Unicode.GetBytes(inString);
         ICryptoTransform xfrm = symAlg.CreateEncryptor();
         byte[] outBlock = xfrm.TransformFinalBlock(inBlock, 0, inBlock.Length);

         return outBlock;

     public static string DecryptBytes(SymmetricAlgorithm symAlg, byte[] inBytes)
         ICryptoTransform xfrm = symAlg.CreateDecryptor();
         byte[] outBlock = xfrm.TransformFinalBlock(inBytes, 0, inBytes.Length);

         return UnicodeEncoding.Unicode.GetString(outBlock);

.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top