Как реализовать алгоритм Rijndael (AES) для шифрования C# Windows Form C# app.config

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

Например, если я сначала запущу программу, она автоматически изменит строку подключения на зашифрованную строку.


person Believer    schedule 12.05.2016    source источник
comment
Как вы думаете, какую безопасность это добавит?   -  person CodeCaster    schedule 12.05.2016
comment
@CodeCaster, если честно, я сейчас нахожусь на стадии исследования/планирования.   -  person Believer    schedule 12.05.2016
comment
Хорошо, позвольте мне вернуться к вопросу: что вы пытаетесь защитить, от кого и в какой ситуации? Кроме того, что показало ваше исследование? Если вы собираетесь распространять приложение со встроенной строкой подключения, то эта строка не является безопасной и тривиально получается из работающего исполняемого файла.   -  person CodeCaster    schedule 12.05.2016
comment
Я раздам ​​его другим пользователям из других мест.   -  person Believer    schedule 12.05.2016
comment
Тогда вы не должны позволять вашему приложению подключаться к базе данных напрямую.   -  person CodeCaster    schedule 12.05.2016
comment
Итак, лучший способ — создать веб-сервис?   -  person Believer    schedule 12.05.2016
comment
Без какой-либо дополнительной информации я бы намекнул на это, да. См. также Secure ConnectionString в приложениях WinForm.   -  person CodeCaster    schedule 12.05.2016
comment
Хорошо, вот информация о проекте: настольное приложение получит имя пользователя и пароль пользователя, а затем будет перенаправлено на веб-сайт. Итак, база данных для веб-сайта с использованием MYSQL уже существует, и я создам настольное приложение для подключения.   -  person Believer    schedule 12.05.2016
comment
Не могли бы вы отредактировать всю эту информацию в своем вопросе?   -  person CodeCaster    schedule 12.05.2016
comment
@CodeCaster Думаю, я склоняюсь к использованию веб-сервиса. Я просто создам отдельный вопрос позже.   -  person Believer    schedule 12.05.2016
comment
Просто сначала проведите исследование и не задавайте вопрос, на который уже был дан ответ, прочитайте Как спросить Чтобы получить больше информации.   -  person CodeCaster    schedule 12.05.2016


Ответы (1)


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

Хотя это в первую очередь предназначено для использования с ASP.Net, вы также можете использовать его для приложений Windows Forms (и других).

Вот (довольно старая) статья об использовании защищенной конфигурации с Windows Forms приложение в Code Project.

А вот и более свежая статья.

person Matthew Watson    schedule 12.05.2016
comment
но защищенная конфигурация будет работать только в той же сети? что, если мне нужно раздать его пользователям в другой сети? - person Believer; 12.05.2016
comment
@newuser1 Вторая ссылка на статью (я только что добавил), кажется, предполагает, что вы можете использовать ее для распределенного приложения. - person Matthew Watson; 12.05.2016
comment
Хорошо, я посмотрю на это. Но предложите ли вы шифрование после того, как прочитаете мой разговор с CodeCaster? - person Believer; 12.05.2016
comment
@ newuser1 Нет, я бы не советовал использовать шифрование таким образом, если можно использовать альтернативу, по причинам, изложенным CodeCaster. - person Matthew Watson; 12.05.2016