How to create a password protected file in C #

A bit complements, but not in the way, this question.

How to create a password protected file?

+4
c # passwords
source share
2 answers

encrypt:

private const int SaltSize = 8; public static void Encrypt( FileInfo targetFile, string password ) { var keyGenerator = new Rfc2898DeriveBytes( password, SaltSize ); var rijndael = Rijndael.Create(); // BlockSize, KeySize in bit --> divide by 8 rijndael.IV = keyGenerator.GetBytes( rijndael.BlockSize / 8 ); rijndael.Key = keyGenerator.GetBytes( rijndael.KeySize / 8 ); using( var fileStream = targetFile.Create() ) { // write random salt fileStream.Write( keyGenerator.Salt, 0, SaltSize ); using( var cryptoStream = new CryptoStream( fileStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write ) ) { // write data } } } 

and decrypt:

 public static void Decrypt( FileInfo sourceFile, string password ) { // read salt var fileStream = sourceFile.OpenRead(); var salt = new byte[SaltSize]; fileStream.Read( salt, 0, SaltSize ); // initialize algorithm with salt var keyGenerator = new Rfc2898DeriveBytes( password, salt ); var rijndael = Rijndael.Create(); rijndael.IV = keyGenerator.GetBytes( rijndael.BlockSize / 8 ); rijndael.Key = keyGenerator.GetBytes( rijndael.KeySize / 8 ); // decrypt using( var cryptoStream = new CryptoStream( fileStream, rijndael.CreateDecryptor(), CryptoStreamMode.Read ) ) { // read data } } 
+9
source share

Use the RijndaelManaged class for encryption and Rfc2898DeriveBytes to generate the key (and IV) for the cryptogram.

+2
source share

All Articles