在App.config中加密密码

NDe*_*per 25 c# ado.net entity-framework

我想加密连接字符串中的密码.当我连接到DB时,连接字符串公开存储在App.config中,我需要找到一种方法来保持只加密密码.

HAB*_*JAN 22

让我们说这是你的连接字符串:

<connectionStrings>
    <add name="cs" connectionString="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=XXSDFASFDKSFJDKLJFDWERIODFSDFHSDJHKJNFJKSD;"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

然后你可以做这样的事情:

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();
Run Code Online (Sandbox Code Playgroud)

您可以EncDecHelper.Decrypt使用此处的示例进行编写:加密和解密字符串


Ode*_*ded 19

使用connectionStrings配置部分并加密整个部分 - 而不仅仅是密码.

这更安全,因为您的应用程序配置将不再具有纯文本的服务器名称和用户名.

有关在MSDN上为RSA或DPAPI加密配置节的操作方法文档.