當前位置:編程學習大全網 - 源碼下載 - Entity Framework connectionstring 怎麽加密=解密

Entity Framework connectionstring 怎麽加密=解密

在WEB網站開發過程中,如果我們將數據庫連接字符串封裝到.DLL文件中,將會給數據庫和程序的遷移帶來麻煩,因為萬壹服務器地址或

者數據庫發生變更,那麽我們就不得不修改源程序並重新將其編譯。更好的解決方法是將數據庫連接字符串寫入到web.config配置文件中,可問題是將連

接字符串寫入到web.config文件中之後,任何人都能打開看到所連接的數據庫名和密碼,又會帶來安全隱患,因此為了保證數據庫的安全性,我們可以通

過使用微軟IDE自帶的命令aspnet_regiis.exe將配置文件web.config中指定的標簽進行加密,如果以後想查看加密後的連接字符

串,我們還可以使用aspnet_regiis.exe將加密後的字符串進行解密。

1. 加密通用語法

加密壹個特定網站的web.config文件的通用形式

aspnet_regiis.exe -pef secion physical_directory -prov provider

aspnet_regiis.exe -pe secion -app virtual_directory -prov provider

其中,各個參數的含義如下:

section表示要加密的配置節

physical_directory用於指定站點的物理路徑。

virtual_directory用戶指定虛擬路徑。

provider指定加密提供程序。

加密壹個特定站點的連接字符串就是:

aspnet_regiis.exe -pef "connectionStrings" "妳的web項目路徑" -prov "DataProtectionConfigurationProvider"

其中DataProctionConfiguartionProvider是Windows數據保護API(DPAPI)提供程序,它使用Windows內置的密碼學技術來加解密配置節。默認情況下,這個提供程序使用本機的密鑰。

2. 加密方法

運行Visual Studio 2008命令提示

加密後的結果

<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">

<EncryptedData>

<CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo+ogiigQAAAACAAAAAAADZgAAqAAAABAAAADbDjp+bAce//lsg/so66+8AAAAAASAAACgAAAAEAAAANlF3b73Kdupv/cAf4a9nPUwAQAAoTvrHdAjNjaJFEfiG7pD6sG8GMNJKGpnd4JLchu7W9XhOuPgG4C/LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/aYri1Wmlo2zyRqSkg0hQFQbObCf7lrgWEUjsv+pEOS5OVXcgNhFipVMy5iQ8sH5fNHmGg8gu5JlZQaOqYFG8ci7MGOebcQzR67krJXRBrs26lZtAj8lzf2bK+QcSqtU7Rt4C33JbLqisPL9xhfoUl9GvGTu5VS1S1H5VtErTeYXxnL7PTIr3cNjIbDMjI48LJfoOgtymT35KUdK3J0DxB68DqPaeK5QSEC/L0+6bizStRZ7BDnOngV/XfiVJnbSNYXX5IShQAAACuGn8QGUuQ4TOzkKcc891SV/CVDQ==</CipherValue>

</CipherData>

</EncryptedData>

lt;/connectionStrings>

3. 解密

解密該連接字符串也很簡單

aspnet_regiis.exe -pdf "connectionStrings" '妳的web項目路徑"

解密後的結果:

<connectionStrings>

<add name="Sql" connectionString="Data Source=.;Initial Catalog=MySchool;Integrated Security=True" />

</connectionStrings>

4. 後臺代碼讀取配置文件web.config中數據庫連接字符串的方法:

using System.Configuation;

protected void Page_Load(object sender, EventArgs e)

{

lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();

}

5. 在連接字符串的加密和解密的過程中,需要註意壹下幾點。

使用加密的連接字符串

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

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

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

中文路徑問題

該命令對中文支持不是很好。如果站點的路徑中有中文字符,也許不能正常加解密。

  • 上一篇:洋娃娃的外貌描寫作文500字
  • 下一篇:基於JSP技術的廣海局互聯網站動態信息發布系統
  • copyright 2024編程學習大全網