Advertisement
Guest User

sample

a guest
Jun 23rd, 2014
1,317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.96 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Security.Cryptography;
  7.  
  8. namespace ConsoleApplication2
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             Decrypt("compact.sqlite3", "decrypted.sqlite3", "decrypted.data");
  15.         }
  16.         public static void Decrypt(string encryptedFile, string decryptedFile, string keyFile)
  17.         {
  18.  
  19.             byte[] key = new byte[16];
  20.             using (var stream = new FileStream(keyFile, FileMode.Open, FileAccess.Read))
  21.             {
  22.                 stream.Read(key, 0, (int)stream.Length);
  23.             }
  24.             using (var memoryEncryptedStream = new MemoryStream())
  25.             using (var memoryDecryptedStream = new MemoryStream())
  26.             {
  27.                 //read file with 16byte{zero}
  28.                 for (int i = 0; i < 16; i++)
  29.                 {
  30.                     memoryEncryptedStream.WriteByte(0);
  31.                 }
  32.                 var temp = File.ReadAllBytes(encryptedFile);
  33.                 memoryEncryptedStream.Write(temp, 0, temp.Length);
  34.  
  35.  
  36.                 memoryEncryptedStream.Position = 0;
  37.  
  38.                 //decrypt
  39.                 using (ICryptoTransform transform = new RijndaelManaged
  40.                 {
  41.                     BlockSize = 128,
  42.                     IV = key,
  43.                     KeySize = 128,
  44.                     Key = key,
  45.                     Padding = PaddingMode.None,
  46.                     Mode = CipherMode.CBC
  47.                 }.CreateDecryptor())
  48.                 using (var cryptoStream = new CryptoStream(memoryDecryptedStream, transform, CryptoStreamMode.Write))
  49.                 {
  50.  
  51.                     byte[] buffer = new byte[1024];
  52.                     int len;
  53.                     while ((len = memoryEncryptedStream.Read(buffer, 0, buffer.Length)) > 0)
  54.                     {
  55.                         cryptoStream.Write(buffer, 0, len);
  56.                     }
  57.  
  58.                     cryptoStream.Close();
  59.                     transform.Dispose();
  60.                 }
  61.  
  62.                 //write file without head 16byte
  63.                 using (var decryptedFileStream = new FileStream(decryptedFile, FileMode.Create, FileAccess.Write))
  64.                 {
  65.                     var outTemp = memoryDecryptedStream.ToArray();
  66.                     decryptedFileStream.Write(outTemp, 16, outTemp.Length - 16);
  67.                     decryptedFileStream.Close();
  68.                 }
  69.  
  70.                 memoryEncryptedStream.Close();
  71.                 memoryDecryptedStream.Close();
  72.             }
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement