Skip to content

Instantly share code, notes, and snippets.

@Buildsoftwaresphere
Created March 10, 2016 14:40
Show Gist options
  • Save Buildsoftwaresphere/dbe28d0dfcb0ccab1b9f to your computer and use it in GitHub Desktop.
Save Buildsoftwaresphere/dbe28d0dfcb0ccab1b9f to your computer and use it in GitHub Desktop.
System.Object
System.Security.Cryptography.SymmetricAlgorithm
System.Security.Cryptography.Aes
System.Security.Cryptography.DES
System.Security.Cryptography.RC2
System.Security.Cryptography.Rijndael
System.Security.Cryptography.TripleDES
@Buildsoftwaresphere
Copy link
Author

void EncryptData( String^ inName, String^ outName, array^rijnKey, array^rijnIV )
{

//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^bin = gcnew array(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.

SymmetricAlgorithm^ rijn = SymmetricAlgorithm::Create(); //Creates the default implementation, which is RijndaelManaged.

CryptoStream^ encStream = gcnew CryptoStream( fout,rijn->CreateEncryptor( rijnKey, rijnIV ),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();
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment