2009-04-11 5 views
3

Предварительно:Самый простой способ зашифровать файл в C#?

Я действительно прочитал другие темы, но я не могу найти ответ в них.
(Остальные о конфигурации-файлов, или список методов)

Мой вопрос, таким образом, очень просто, хотя и немного субъективное (я маркировать его заранее :-)), что является самым простым способом ..

+0

@ все: я, конечно, согласен с ответом, но у меня нет времени изучать ответы, приветствия – Peter

ответ

7

File.Encrypt довольно проста - один вызов (с одним параметром).

Конечно, это действительно зависит от того, для чего вы хотите шифрования. File.Encrypt шифрует текущую учетную запись, что не очень полезно, если вы передаете файл. Но, учитывая ваш spec - самый простой способ зашифровать файл - он должен быть кандидатом!

4

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

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

+0

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

+0

Я согласен с вами, потому что это нормально, если это имеет значение, «параноидально» относительно вашей безопасности. Если вы можете зашифровать его, его можно расшифровать. Это точно так же, как ваш ответ, это делает его немного сложнее. – Kredns

4

Шифрование тривиально с современными библиотеками: твердая часть защищает ключ (ключи).

Итак, вам нужно посмотреть, что вы пытаетесь обеспечить, и какие угрозы вы пытаетесь защитить.

Чтобы зашифровать файл, чтобы только текущий пользователь мог видеть его на клиентской рабочей станции, File.Encrypt является хорошим выбором или DPAPI с областью CurrentUser.

Для конфигурационного файла на одном сервере DPAPI с использованием области LocalMachine является хорошим выбором. Затем вам необходимо убедиться, что только авторизованные пользователи могут войти на сервер. Здесь вы по существу делегируете управление ключами в Windows.

Для файла конфигурации на ферме серверов вам необходимо разделить ключ между серверами. RsaProtectedConfigurationProvide - хороший выбор, но у вас есть больше работы, гарантирующей, что все серверы имеют доступ к одному и тому же ключу и что он защищен от несанкционированного доступа (например, с использованием DACL).

3

Я рекомендую Cryptography Application block в Enterprise Library. Очень легко, очень гибко.

+3

Я сомневаюсь, что «самый простой» и «корпоративная библиотека» когда-либо принадлежат друг другу ... – MichaelGG

+0

Действительно? Я нахожу противоположное, но я думаю, что я просто использовал его. Шифрование, выполненное по самой своей природе, не «легко», но я полагаю, вы правы в том, что это часть вопроса. Но ради полноты. :) –

Смежные вопросы