日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何对web.config进行加密和解密

發布時間:2023/12/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何对web.config进行加密和解密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/jf_jifei/article/details/6527390

?

在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命令提示

? 加密后的結果

[xhtml] view plain copy

  • <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項目路徑"

    ?? 解密后的結果:

    [xhtml] view plain copy

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

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

    [c-sharp] view plain copy

  • using System.Configuation;??
  • …??
  • protected void Page_Load(object sender, EventArgs e)??
  • {??
  • ??? lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();??
  • }??
  • …?
  • 運行效果圖:

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

    • ???? 使用加密的連接字符串

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

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

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

    • ???? 中文路徑問題

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

    總結

    以上是生活随笔為你收集整理的如何对web.config进行加密和解密的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。