2011-04-02 116 views
21

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

+0

请检查:

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出这个链接加密配置文件中的密码:http://weblogs.asp.net/jongalloway/encrypting-passwords-in-a-net-app-config-file – 2011-04-02 11:36:50

回答

20

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

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

然后,你可以做这样的事情:Encrypt and decrypt a string

+0

但据我所知,任何人都可以解密它...除了我只想加密密码。 – NDeveloper 2011-04-02 11:46:58

+0

@NDeveloper:我改变了我的答案,看看。 – HABJAN 2011-04-02 12:05:15

+0

谢谢,这正是我需要的。 – NDeveloper 2011-04-02 12:44:31

0

在加载应用程序之前,可能会从您的配置中解密连接字符串。

16

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

这更安全,因为您的应用程序配置将不再以纯文本格式显示服务器名称和用户名。

有关于如何为MSDN上的配置部分加密RSADPAPI

+0

有没有办法让它适用于App.config文件而不是仅仅是Web.config?尽管谢谢你的回答! +1 – 2014-01-22 12:31:15

+0

@ One-One http://stackoverflow.com/questions/5803188/encrypting-connectionstrings-section-utility-for-app-config – Oded 2014-01-22 12:41:53

+0

“此内容已过时,不再保留。”它还应该使用吗? @Oded – NoReceipt4Panda 2017-04-26 13:09:26