DESCryptoServiceProvider Class
[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]
Defines a wrapper object to access the cryptographic service provider (CSP) version of the Data Encryption Standard (DES) algorithm. This class cannot be inherited.
System.Security.Cryptography.SymmetricAlgorithm
System.Security.Cryptography.DES
System.Security.Cryptography.DESCryptoServiceProvider
Namespace: System.Security.Cryptography
Assembly: mscorlib (in mscorlib.dll)
The DESCryptoServiceProvider type exposes the following members.
| Name | Description | |
|---|---|---|
|
DESCryptoServiceProvider | Initializes a new instance of the DESCryptoServiceProvider class. |
| Name | Description | |
|---|---|---|
|
BlockSize | Gets or sets the block size, in bits, of the cryptographic operation. (Inherited from SymmetricAlgorithm.) |
|
FeedbackSize | Gets or sets the feedback size, in bits, of the cryptographic operation. (Inherited from SymmetricAlgorithm.) |
|
IV | Gets or sets the initialization vector (IV) for the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
Key | Gets or sets the secret key for the Data Encryption Standard (DES) algorithm. (Inherited from DES.) |
|
KeySize | Gets or sets the size, in bits, of the secret key used by the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
LegalBlockSizes | Gets the block sizes, in bits, that are supported by the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
LegalKeySizes | Gets the key sizes, in bits, that are supported by the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
Mode | Gets or sets the mode for operation of the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
Padding | Gets or sets the padding mode used in the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
| Name | Description | |
|---|---|---|
|
Clear | Releases all resources used by the SymmetricAlgorithm class. (Inherited from SymmetricAlgorithm.) |
|
CreateDecryptor() | Creates a symmetric decryptor object with the current Key property and initialization vector (IV). (Inherited from SymmetricAlgorithm.) |
|
CreateDecryptor(Byte[], Byte[]) | Creates a symmetric Data Encryption Standard (DES) decryptor object with the specified key (Key) and initialization vector (IV). (Overrides SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[]).) |
|
CreateEncryptor() | Creates a symmetric encryptor object with the current Key property and initialization vector (IV). (Inherited from SymmetricAlgorithm.) |
|
CreateEncryptor(Byte[], Byte[]) | Creates a symmetric Data Encryption Standard (DES) encryptor object with the specified key (Key) and initialization vector (IV). (Overrides SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[]).) |
|
Dispose() | Releases all resources used by the current instance of the SymmetricAlgorithm class. (Inherited from SymmetricAlgorithm.) |
|
Dispose(Boolean) | Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources. (Inherited from SymmetricAlgorithm.) |
|
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
|
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
|
GenerateIV | Generates a random initialization vector (IV) to use for the algorithm. (Overrides SymmetricAlgorithm.GenerateIV().) |
|
GenerateKey | Generates a random key (Key) to be used for the algorithm. (Overrides SymmetricAlgorithm.GenerateKey().) |
|
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
|
GetType | Gets the Type of the current instance. (Inherited from Object.) |
|
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
|
ToString | Returns a string that represents the current object. (Inherited from Object.) |
|
ValidKeySize | Determines whether the specified key size is valid for the current algorithm. (Inherited from SymmetricAlgorithm.) |
| Name | Description | |
|---|---|---|
|
BlockSizeValue | Represents the block size, in bits, of the cryptographic operation. (Inherited from SymmetricAlgorithm.) |
|
FeedbackSizeValue | Represents the feedback size, in bits, of the cryptographic operation. (Inherited from SymmetricAlgorithm.) |
|
IVValue | Represents the initialization vector (IV) for the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
KeySizeValue | Represents the size, in bits, of the secret key used by the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
KeyValue | Represents the secret key for the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
LegalBlockSizesValue | Specifies the block sizes, in bits, that are supported by the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
LegalKeySizesValue | Specifies the key sizes, in bits, that are supported by the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
ModeValue | Represents the cipher mode used in the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
|
PaddingValue | Represents the padding mode used in the symmetric algorithm. (Inherited from SymmetricAlgorithm.) |
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); 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. DES des = new DESCryptoServiceProvider(); CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), 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(); }
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.
Windows 8 Release Preview, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 SP2, Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.