DESCryptoServiceProvider Constructor ()
Initializes a new instance of the DESCryptoServiceProvider class.
Assembly: mscorlib (in mscorlib.dll)
| Exception | Condition |
|---|---|
| CryptographicException | 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.
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