Я хотел бы написать небольшой инструмент .NET script/, который, по крайней мере, в основном такой же, как SecretSync или BoxCryptor, но без сохранения ключа шифрования на веб-серверах компании.
Сначала это звучит очень просто: у вас есть две папки - "decryped" -папка и "зашифрованная" -папка. В обеих папках есть FileSystemWatcher, поэтому инструмент получает уведомление, когда файл был изменен. Если файл "decryped" -памят изменяется, он шифрует файл и записывает его в "зашифрованную" -панель. Если файл изменяется в "зашифрованной" папке, он расшифровывает файл и записывает его в "расшифрованную" -панель.
Пока нет проблем.
Но что произойдет, если пользователи запускают приложение (например, KeePass, например) непосредственно из "decryped" -папки? Процесс синхронизации и шифрования теперь столкнется с проблемами, поскольку файлы заблокированы из приложения. Есть ли что-то, что я могу сделать, чтобы избежать этой проблемы, поэтому приложение все равно может работать рядом с процессом синхронизации и шифрования?
Спасибо за любую помощь!
Обновление: Я все еще не мог найти ответ на этот вопрос. При использовании класса FileSystemWatcher для синхронизации легко применять шифрование/дешифрование, но у вас возникают проблемы с блокировками файлов (из-за потоков или приложений, блокирующих файлы). Я также попробовал Microsoft Sync Framework. Файловая синхронизация работает с ней, но я не знаю, как шифровать/дешифровать файлы на лету.
Возможно, у кого-то есть небольшой пример рабочего кода.