DESCryptoServiceProvider Constructor
Collapse the table of content
Expand the table of content

DESCryptoServiceProvider Constructor ()


Initializes a new instance of the DESCryptoServiceProvider class.

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

public DESCryptoServiceProvider()

Exception Condition

The Data Encryption Standard (DES) cryptographic service provider is not available.

The following code example uses DESCryptoServiceProvider (an implementation of DES) with the specified key (Key) and initialization vector (IV) to encrypt a file specified by inName. It then outputs the encrypted result to the file specified by outName.

private static void EncryptData(String inName, String outName, byte[] desKey, byte[] desIV)
     //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);

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

     DES des = new DESCryptoServiceProvider();          
     CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write);


     //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);


Decryption can be handled in the same way; use CreateDecryptor instead of CreateEncryptor. The same key (Key) and initialization vector (IV) used to encrypt the file must be used to decrypt it.

.NET Framework
Available since 1.1
Return to top
© 2016 Microsoft