The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.
DES::Create Method (String^)
.NET Framework (current version)
Creates an instance of a cryptographic object to perform the specified implementation of the Data Encryption Standard (DES) algorithm.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- algName
-
Type:
System::String^
The name of the specific implementation of DES to use.
The following code example shows how to create and use a DES object to encrypt and decrypt data in a file.
using namespace System; using namespace System::Security::Cryptography; using namespace System::Text; using namespace System::IO; void EncryptTextToFile( String^ Data, String^ FileName, array<Byte>^Key, array<Byte>^IV ) { try { // Create or open the specified file. FileStream^ fStream = File::Open( FileName, FileMode::OpenOrCreate ); // Create a new DES object. DES^ DESalg = DES::Create(); // Create a CryptoStream using the FileStream // and the passed key and initialization vector (IV). CryptoStream^ cStream = gcnew CryptoStream( fStream,DESalg->CreateEncryptor( Key, IV ),CryptoStreamMode::Write ); // Create a StreamWriter using the CryptoStream. StreamWriter^ sWriter = gcnew StreamWriter( cStream ); // Write the data to the stream // to encrypt it. sWriter->WriteLine( Data ); // Close the streams and // close the file. sWriter->Close(); cStream->Close(); fStream->Close(); } catch ( CryptographicException^ e ) { Console::WriteLine( "A Cryptographic error occurred: {0}", e->Message ); } catch ( UnauthorizedAccessException^ e ) { Console::WriteLine( "A file error occurred: {0}", e->Message ); } } String^ DecryptTextFromFile( String^ FileName, array<Byte>^Key, array<Byte>^IV ) { try { // Create or open the specified file. FileStream^ fStream = File::Open( FileName, FileMode::OpenOrCreate ); // Create a new DES object. DES^ DESalg = DES::Create(); // Create a CryptoStream using the FileStream // and the passed key and initialization vector (IV). CryptoStream^ cStream = gcnew CryptoStream( fStream,DESalg->CreateDecryptor( Key, IV ),CryptoStreamMode::Read ); // Create a StreamReader using the CryptoStream. StreamReader^ sReader = gcnew StreamReader( cStream ); // Read the data from the stream // to decrypt it. String^ val = sReader->ReadLine(); // Close the streams and // close the file. sReader->Close(); cStream->Close(); fStream->Close(); // Return the string. return val; } catch ( CryptographicException^ e ) { Console::WriteLine( "A Cryptographic error occurred: {0}", e->Message ); return nullptr; } catch ( UnauthorizedAccessException^ e ) { Console::WriteLine( "A file error occurred: {0}", e->Message ); return nullptr; } } int main() { try { // Create a new DES object to generate a key // and initialization vector (IV). Specify one // of the recognized simple names for this // algorithm. DES^ DESalg = DES::Create( "DES" ); // Create a string to encrypt. String^ sData = "Here is some data to encrypt."; String^ FileName = "CText.txt"; // Encrypt text to a file using the file name, key, and IV. EncryptTextToFile( sData, FileName, DESalg->Key, DESalg->IV ); // Decrypt the text from a file using the file name, key, and IV. String^ Final = DecryptTextFromFile( FileName, DESalg->Key, DESalg->IV ); // Display the decrypted string to the console. Console::WriteLine( Final ); } catch ( Exception^ e ) { Console::WriteLine( e->Message ); } }
The following code example shows how to create and use a DES object to encrypt and decrypt data in memory.
using namespace System; using namespace System::Security::Cryptography; using namespace System::Text; using namespace System::IO; array<Byte>^ EncryptTextToMemory( String^ Data, array<Byte>^Key, array<Byte>^IV ) { try { // Create a MemoryStream. MemoryStream^ mStream = gcnew MemoryStream; // Create a new DES object. DES^ DESalg = DES::Create(); // Create a CryptoStream using the MemoryStream // and the passed key and initialization vector (IV). CryptoStream^ cStream = gcnew CryptoStream( mStream,DESalg->CreateEncryptor( Key, IV ),CryptoStreamMode::Write ); // Convert the passed string to a byte array. array<Byte>^toEncrypt = (gcnew ASCIIEncoding)->GetBytes( Data ); // Write the byte array to the crypto stream and flush it. cStream->Write( toEncrypt, 0, toEncrypt->Length ); cStream->FlushFinalBlock(); // Get an array of bytes from the // MemoryStream that holds the // encrypted data. array<Byte>^ret = mStream->ToArray(); // Close the streams. cStream->Close(); mStream->Close(); // Return the encrypted buffer. return ret; } catch ( CryptographicException^ e ) { Console::WriteLine( "A Cryptographic error occurred: {0}", e->Message ); return nullptr; } } String^ DecryptTextFromMemory( array<Byte>^Data, array<Byte>^Key, array<Byte>^IV ) { try { // Create a new MemoryStream using the passed // array of encrypted data. MemoryStream^ msDecrypt = gcnew MemoryStream( Data ); // Create a new DES object. DES^ DESalg = DES::Create(); // Create a CryptoStream using the MemoryStream // and the passed key and initialization vector (IV). CryptoStream^ csDecrypt = gcnew CryptoStream( msDecrypt,DESalg->CreateDecryptor( Key, IV ),CryptoStreamMode::Read ); // Create buffer to hold the decrypted data. array<Byte>^fromEncrypt = gcnew array<Byte>(Data->Length); // Read the decrypted data out of the crypto stream // and place it into the temporary buffer. csDecrypt->Read( fromEncrypt, 0, fromEncrypt->Length ); //Convert the buffer into a string and return it. return (gcnew ASCIIEncoding)->GetString( fromEncrypt ); } catch ( CryptographicException^ e ) { Console::WriteLine( "A Cryptographic error occurred: {0}", e->Message ); return nullptr; } } int main() { try { // Create a new DES object to generate a key // and initialization vector (IV). Specify one // of the recognized simple names for this // algorithm. DES^ DESalg = DES::Create( "DES" ); // Create a string to encrypt. String^ sData = "Here is some data to encrypt."; // Encrypt the string to an in-memory buffer. array<Byte>^Data = EncryptTextToMemory( sData, DESalg->Key, DESalg->IV ); // Decrypt the buffer back to a string. String^ Final = DecryptTextFromMemory( Data, DESalg->Key, DESalg->IV ); // Display the decrypted string to the console. Console::WriteLine( Final ); } catch ( Exception^ e ) { Console::WriteLine( e->Message ); } }
.NET Framework
Available since 1.1
Available since 1.1
Show: