Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static void Encrypt (MemoryStream input, string password)
- {
- var value = input.ToArray ();
- var keyBytes = new Rfc2898DeriveBytes (password, Encoding.UTF8.GetBytes (SaltKey)).GetBytes (KeyLength / 8);
- var symmetricKey = new RijndaelManaged { Mode = CipherMode.CBC, Padding = PaddingMode.Zeros };
- var encryptor = symmetricKey.CreateEncryptor (keyBytes, Encoding.UTF8.GetBytes (IVKey));
- using (var outputStream = File.Exists (data) ? File.OpenWrite (data) : File.Create (data)) {
- using (var cryptoStream = new CryptoStream (outputStream, encryptor, CryptoStreamMode.Write)) {
- cryptoStream.Write (value, 0, value.Length);
- cryptoStream.FlushFinalBlock ();
- cryptoStream.Close ();
- outputStream.Close ();
- }
- }
- }
- private static MemoryStream Decrypt (string password)
- {
- MemoryStream outputStream = new MemoryStream ();
- var keyBytes = new Rfc2898DeriveBytes (password, Encoding.UTF8.GetBytes (SaltKey)).GetBytes (KeyLength / 8);
- var symmetricKey = new RijndaelManaged { Mode = CipherMode.CBC, Padding = PaddingMode.None };
- var decryptor = symmetricKey.CreateDecryptor (keyBytes, Encoding.UTF8.GetBytes (IVKey));
- using (var input = File.OpenRead (data))
- using (var cryptoStream = new CryptoStream (input, decryptor, CryptoStreamMode.Read)) {
- var plainTextBytes = new byte[input.Length];
- var decryptedByteCount = cryptoStream.Read (plainTextBytes, 0, plainTextBytes.Length);
- outputStream.Write (plainTextBytes, 0, decryptedByteCount);
- outputStream.Flush ();
- outputStream.Seek (0, SeekOrigin.Begin);
- cryptoStream.Close ();
- return outputStream;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment