Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void FileDecrypt(string inputFileName, string outputFileName, string password)
- {
- byte[] passwords = Encoding.UTF8.GetBytes(password);
- byte[] salt = new byte[32];
- // odczytywanie pliku bajt po bajcie
- using (FileStream fsCrypt = new FileStream(inputFileName, FileMode.Open))
- {
- fsCrypt.Read(salt, 0, salt.Length);
- RijndaelManaged AES = new RijndaelManaged();
- AES.KeySize = 256;
- AES.BlockSize = 128;
- AES.Padding = PaddingMode.PKCS7;
- var key = new Rfc2898DeriveBytes(password, salt, 50000);
- AES.Key = key.GetBytes(AES.KeySize / 8);
- AES.IV = key.GetBytes(AES.BlockSize / 8);
- AES.Mode = CipherMode.CFB;
- // CryptoStream odczytuje dane zaszyfrowane za pomocą AES-a
- using (CryptoStream cs = new CryptoStream(fsCrypt, AES.CreateDecryptor(),
- CryptoStreamMode.Read))
- {
- using (FileStream fso = new FileStream(outputFileName, FileMode.Create))
- {
- // Bufor na plik ~1 Megabajt ( większego pliku nie przyjmie), można
- zwiększyć
- byte[] buffer = new byte[1048576];
- int read;
- // przepisywanie zaszyfrowanego pliku do odszyfrowanego
- while ((read = cs.Read(buffer, 0, buffer.Length)) > 0)
- {
- fso.Write(buffer, 0, read);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement