DRD94 Ответов: 2

Шифрование строк подключения в конфигурационном файле, используемом на нескольких машинах C# WPF


В данный момент я храню свои строки подключения в файле app.config в виде обычного текста. Плохая практика, я знаю, и я пытаюсь зашифровать их вместо этого. Я уже упоминал https://msdn.microsoft.com/en-us/library/ms254494 (v=vs.110). aspx и у меня не было проблем с получением части app.config, работающей на моей машине.

Что я уже пробовал:

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

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

Есть ли решение, которое позволяет пользователям самостоятельно шифровать файл?

Rob Philpott

На мой взгляд, это не обязательно плохая практика - если только у вас там нет верительных грамот , не так ли?

2 Ответов

Рейтинг:
1

#realJSOP

Как вы шифруете строку подключения?

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

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