DESCryptoServiceProvider Class
Defines a wrapper object to access the cryptographic service provider (CSP) version of the Data Encryption Standard (DES) algorithm. This class cannot be inherited.
Assembly: mscorlib (in mscorlib.dll)
System.Security.Cryptography::SymmetricAlgorithm
System.Security.Cryptography::DES
System.Security.Cryptography::DESCryptoServiceProvider
| 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 | |
![]() | 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(array<Byte>^, array<Byte>^) | Creates a symmetric Data Encryption Standard (DES) decryptor object with the specified key (Key) and initialization vector (IV).(Overrides SymmetricAlgorithm::CreateDecryptor(array<Byte>^, array<Byte>^).) |
![]() | CreateEncryptor() | Creates a symmetric encryptor object with the current Key property and initialization vector (IV).(Inherited from SymmetricAlgorithm.) |
![]() | CreateEncryptor(array<Byte>^, array<Byte>^) | Creates a symmetric Data Encryption Standard (DES) encryptor object with the specified key (Key) and initialization vector (IV).(Overrides SymmetricAlgorithm::CreateEncryptor(array<Byte>^, array<Byte>^).) |
![]() | Dispose() | Releases all resources used by the current instance of the SymmetricAlgorithm class.(Inherited from SymmetricAlgorithm.) |
![]() | Equals(Object^) | Determines whether the specified object is equal to the current object.(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 the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | ValidKeySize(Int32) | Determines whether the specified key size is valid for the current algorithm.(Inherited from SymmetricAlgorithm.) |
This algorithm supports a key length of 64 bits.
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.
void EncryptData( String^ inName, String^ outName, array<Byte>^desKey, array<Byte>^desIV ) { //Create the file streams to handle the input and output files. FileStream^ fin = gcnew FileStream( inName,FileMode::Open,FileAccess::Read ); FileStream^ fout = gcnew FileStream( outName,FileMode::OpenOrCreate,FileAccess::Write ); fout->SetLength( 0 ); //Create variables to help with read and write. array<Byte>^bin = gcnew array<Byte>(100); long rdlen = 0; //This is the total number of bytes written. long totlen = (long)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 = gcnew DESCryptoServiceProvider; CryptoStream^ encStream = gcnew 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.
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

