【发布时间】:2011-08-26 09:31:58
【问题描述】:
我想编写一个小的 .NET 脚本/工具,它至少与 SecretSync 或 BoxCryptor 几乎相同,但不将加密密钥存储在公司的 Web 服务器上。
首先听起来很简单:您有两个文件夹 - 一个“解密”文件夹和一个“加密”文件夹。在这两个文件夹上都有一个FileSystemWatcher,因此当文件发生更改时,该工具会收到通知。 如果“解密”文件夹中的文件发生更改,它会加密文件并将其写入“加密”文件夹。如果“encrypted”文件夹中的文件发生更改,它会解密该文件并将其写入“decrypted”文件夹。
目前没有问题。
但是如果用户直接从“解密”文件夹运行应用程序(例如KeePass)会发生什么?由于文件被应用程序锁定,同步和加密过程现在会遇到问题。 我可以做些什么来避免处理这个问题,所以应用程序仍然可以在同步和加密过程之外运行?
感谢您的帮助!
更新:我仍然找不到这个问题的答案。当使用 FileSystemWatcher-class 进行同步时,很容易应用加密/解密,但是您会遇到文件锁定问题(因为流或应用程序阻塞了文件)。我也试过微软同步框架。文件同步适用于它,但我不知道如何即时加密/解密文件。
也许有人有一些工作代码示例。
【问题讨论】:
标签: c# .net file encryption synchronization