C # CF: шифрование / дешифрование файлов на лету - PullRequest
1 голос
/ 14 марта 2010

Я видел много статей о шифровании / дешифровании файла, и обычно кнопка используется для выбора файла для шифрования и еще одна кнопка для дешифрования файла.

Я видел некоторые приложения, такие как truecrypt и, возможно, другие, которые выполняют шифрование файлов на лету с прозрачным. это означает, что при нажатии зашифрованного файла для доступа он автоматически расшифровывает и воспроизводит / открывает файл. затем, когда файл будет закрыт, он автоматически снова зашифруется.

некоторые говорят, что единственный способ обнаружить открытие файла - через фильтр файловой системы.

но есть ли другие способы сделать это в c # compact framework?

Ответы [ 3 ]

1 голос
/ 14 марта 2010

Вы можете присвоить всем зашифрованным файлам определенное расширение файла, которое обрабатывается вашей программой дешифрования, затем, когда пользователь открывает файл, ваша программа расшифрует его и затем откроет его в правильном приложении.

0 голосов
/ 14 марта 2010

Я ответил на это в MS Foums. Вы должны написать фильтр файловой системы , и этот фильтр можно записать только на C.

0 голосов
/ 14 марта 2010

Мне кажется, я понимаю ваш вопрос. Вы не управляете программами, которые отображают файлы, вы просто контролируете шифрование и дешифрование файлов за кулисами, даже если программа не знает, что это даже произошло (например, файл .docx будет зашифрован и расшифрован без ведома Word) , Я думаю, что вы должны посмотреть в WMI. Я специально не использовал его для проверки системных событий, связанных с файлами, которые извлекаются или сохраняются, но я использовал его, чтобы подключаться к системным событиям и запускать код в определенные моменты времени очень эффективно. Вот ссылка на MSDN:

WMI Reference

Я бы посмотрел на __Instance События. Как и класс __InstanceModificationEvent для событий сохранения файла в IO:

___ InstanceModificationEvent Reference

Надеюсь, вы попадете на правильный путь!

...