Подтвердить что ты не робот

Шифровать пароль в App.config

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

4b9b3361

Ответ 1

Предположим, что это ваша строка подключения:

<connectionStrings>
    <add name="cs" connectionString="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=XXSDFASFDKSFJDKLJFDWERIODFSDFHSDJHKJNFJKSD;"/>
</connectionStrings>

Затем вы можете сделать что-то вроде этого:

string myCs = System.Configuration.ConfigurationManager.ConnectionStrings["cs"].ConnectionString;

System.Data.SqlClient.SqlConnectionStringBuilder csb = new System.Data.SqlClient.SqlConnectionStringBuilder(myCs);
csb.Password = EncDecHelper.Decrypt(csb.Password);
myCs = csb.ToString();

Вы можете написать EncDecHelper.Decrypt с помощью примеров отсюда: Шифровать и расшифровывать строку

Ответ 2

Используйте раздел connectionStrings и зашифруйте весь раздел - вместо пароля.

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

Существуют инструкции для шифрования разделов конфигурации на MSDN для RSA или DPAPI.

Ответ 3

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