using namespace System;
using namespace System::Diagnostics ;
using namespace System::IO ;
using namespace System::Security::Cryptography ;
using namespace System::Text ;
// 这是此应用程序的入口点
int _tmain(void)
{
// TODO: 请用您自己的代码替换下面的示例代码。
DESCryptoServiceProvider * myDES = new DESCryptoServiceProvider();
MemoryStream * myMemoryStream = new MemoryStream;
UnicodeEncoding * myUnicodeEncoding = new UnicodeEncoding();
Encoding * myEncodingMethod = new UnicodeEncoding();
// Use the initialization vector and passphrase for both
// encrypting and decrypting functions
myDES->GenerateIV ();
myDES->Key = myPassphraseBytes;//myHash ;
// Create an encryption stream that will use the memory stream for
// a storage area.
CryptoStream * myEncryptStream = new CryptoStream(myMemoryStream, myEncryptor, CryptoStreamMode::Write );
myEncryptStream->Write (myMessageBytes,0,myMessageBytes->Length );
myEncryptStream->FlushFinalBlock ();
// The memory stream now holds an encrypted message.
Byte myEncryptedMessage[] = myMemoryStream->ToArray ();
/////////////////////////////////////////
// Decrypt an encrypted memory stream
/////////////////////////////////////////
MemoryStream * myEncryptedMemoryStream = new MemoryStream;
myEncryptedMemoryStream->Write (myEncryptedMessage,0,myEncryptedMessage->Length );
// Reset stream pointer to the beginning of the memory stream
myEncryptedMemoryStream->Seek (0,SeekOrigin::Begin );
// Create a decryption stream that will read from the
// memory stream to decrypt.
CryptoStream * myDecryptStream = new CryptoStream(myEncryptedMemoryStream, myDecryptor, CryptoStreamMode::Read );
// The stream reader will pull data through the myDecryptStream CryptoStream
// using the Unicoding character set.
StreamReader * sr = new StreamReader ( myDecryptStream, myEncodingMethod, false );