Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Security.Cryptography;
- namespace ConsoleApp1
- {
- class Program
- {
- private static string GeneratePassword(DateTime dt) => ((int)dt.Subtract(new DateTime(1970, 1, 1)).TotalSeconds).ToString();
- private static byte[] CreateKey(string password, int keyBytes = 32) => new Rfc2898DeriveBytes(password, Salt, 300).GetBytes(keyBytes);
- private static readonly byte[] Salt = new byte[] {10,20,30,40,50,60,70,80};
- static void Main(string[] args)
- {
- string filename = "dbname.db.enc";
- if (!File.Exists(filename))
- {
- Console.WriteLine("No such file!");
- Environment.Exit(-111);
- }
- string d = File.ReadAllText(filename);
- byte[] array = Convert.FromBase64String(d);
- DateTime dt = new DateTime(2018, 05, 14, 0, 0, 0);
- DateTime maxDate = new DateTime(2018, 05, 16, 20, 0, 0);
- do
- {
- try
- {
- if (dt > maxDate)
- {
- Console.WriteLine("Reached the min date");
- break;
- }
- string text = "GeronimoAlpha" + GeneratePassword(dt);
- RijndaelManaged rijndaelManaged = new RijndaelManaged();
- rijndaelManaged.Key = CreateKey(text, 32);
- rijndaelManaged.IV = new byte[] { 0x18, 0x15, 0x4F, 0x9A, 0x4C, 0xBD, 0x15, 0x40, 0xE2, 0xB5, 0x43, 0x1E, 0x66, 0x68, 0x14, 0x04 };
- using (MemoryStream msDecrypt = new MemoryStream(array))
- {
- ICryptoTransform transform = rijndaelManaged.CreateDecryptor();
- using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, transform, CryptoStreamMode.Read))
- {
- using (MemoryStream srDecrypt = new MemoryStream())
- {
- csDecrypt.CopyTo(srDecrypt);
- File.WriteAllBytes("dbname." + text + ".db", srDecrypt.ToArray());
- }
- }
- }
- }
- catch (CryptographicException)
- {
- //continue
- }
- finally
- {
- dt = dt.AddSeconds(1);
- }
- }
- while (true);
- }
- }
- }
Add Comment
Please, Sign In to add comment