Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

SymmetricAlgorithm.Create Method

Creates a default cryptographic object used to perform the symmetric algorithm.

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

public static SymmetricAlgorithm Create()

Return Value

Type: System.Security.Cryptography.SymmetricAlgorithm
A default cryptographic object used to perform the symmetric algorithm.

The following code example uses the RijndaelManaged class with the specified Key property and initialization vector (IV) to encrypt a file specified by inName, and outputs the encrypted result to the file specified by outName. The desKey and desIV parameters to the method are 8-byte arrays. You must have the high encryption pack installed to run this example.

private static void EncryptData(String inName, String outName, byte[] rijnKey, byte[] rijnIV)
 {    
     //Create the file streams to handle the input and output files.
     FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
     FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
     fout.SetLength(0);

     //Create variables to help with read and write. 
     byte[] bin = new byte[100]; //This is intermediate storage for the encryption. 
     long rdlen = 0;              //This is the total number of bytes written. 
     long totlen = fin.Length;    //This is the total length of the input file. 
     int len;                     //This is the number of bytes to be written at a time.

     SymmetricAlgorithm rijn = SymmetricAlgorithm.Create(); //Creates the default implementation, which is RijndaelManaged.         
     CryptoStream encStream = new CryptoStream(fout, rijn.CreateEncryptor(rijnKey, rijnIV), CryptoStreamMode.Write);

     Console.WriteLine("Encrypting...");

     //Read from the input file, then encrypt and write to the output file. 
     while(rdlen < totlen)
     {
         len = fin.Read(bin, 0, 100);
         encStream.Write(bin, 0, len);
         rdlen = rdlen + len;
         Console.WriteLine("{0} bytes processed", rdlen);
     }

     encStream.Close();  
     fout.Close();
     fin.Close();                   
 }

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft