1. 程式人生 > 資料庫 >asp.net web.config資料庫連線字串加密與解密

asp.net web.config資料庫連線字串加密與解密

在WEB網站開發過程中,如果我們將資料庫連線字串封裝到.DLL檔案中,將會給資料庫和程式的遷移帶來麻煩,因為萬一伺服器地址或者資料庫發生變更,那麼我們就不得不修改源程式並重新將其編譯。最好的解決方法是將資料庫連線字串寫入到web.config配置檔案中,可問題是將連線字串寫入到web.config檔案中之後,任何人都能開啟看到所連線的資料庫名和密碼,又會帶來安全隱患,因此為了保證資料庫的安全性,我們可以通過使用微軟IDE自帶的命令aspnet_regiis.exe將配置檔案web.config中指定的標籤進行加密,如果以後想檢視加密後的連線字串,我們還可以使用aspnet_regiis.exe將加密後的字串進行解密。

加密過程:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
aspnet_regiis.exe -pef "connectionStrings" "D:\aspnet\WebSite62" -prov "DataProtectionConfigurationProvider"
結果顯示:
Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.0
用於在本地計算機上安裝和解除安裝 ASP.NET 的管理實用工具。
版權所有(C) Microsoft Corporation。保留所有權利。
正在加密配置節...
成功!
解密過程:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>

aspnet_regiis.exe -pdf "connectionStrings" "D:\aspnet\WebSite62"
結果顯示:
Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.0
用於在本地計算機上安裝和解除安裝 ASP.NET 的管理實用工具。
版權所有(C) Microsoft Corporation。保留所有權利。
正在解密配置節...
成功!

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>

使用加密的連線字串,使用加密的連線字串不需要編碼解密,ASP.NET會自動對加密內容進行解密

加密和解密在同一臺計算機上使用

在加密過程中,使用了一個基於本機的金鑰。這就意味著加密和解密必須在同一臺計算機上進行,否則將不能解密。同時,在一臺計算機上加密的配置,在另一臺計算機上將不能正常使用。