2011-04-02 126 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