static void EncryptFolder(string folder, string password) { Logger.Info(folder); var subFolders = System.IO.Directory.GetDirectories(folder); foreach (var subFolder in subFolders) { EncryptFolder(subFolder, password); } var fe = new FileEncryptionService(); var gch = GCHandle.Alloc(password, GCHandleType.Pinned); var files = System.IO.Directory.GetFiles(folder, "*.*", System.IO.SearchOption.TopDirectoryOnly); foreach (var file in files) { var fi = new System.IO.FileInfo(file); if (ExtensionToEncrypt.Contains(fi.Extension) == false) { continue; } Logger.Info(" " + file); fe.EncryptFile(file, password); } FileEncryptionService.ZeroMemory(gch.AddrOfPinnedObject(), password.Length * 2); gch.Free(); }
static void SimpleTest() { var fe = new FileEncryptionService(); var password = "******"; Console.WriteLine("Password: {0}", password); Console.WriteLine("Press Enter to start encrypting"); Console.ReadLine(); // For additional security Pin the password of your files var gch = GCHandle.Alloc(password, GCHandleType.Pinned); // Encrypt the file fe.EncryptFile(@"C:\TFSProjects\Playground\C#\Sovor.Crypto\Sovor.Crypto\testfile.zip", password); Console.WriteLine("Press Enter to start decrypting"); Console.ReadLine(); fe.DecryptFile(@"C:\TFSProjects\Playground\C#\Sovor.Crypto\Sovor.Crypto\testfile.zip.aes", password); // To increase the security of the encryption, delete the given password from the memory ! FileEncryptionService.ZeroMemory(gch.AddrOfPinnedObject(), password.Length * 2); gch.Free(); Console.WriteLine(password); }