2009年8月5日 星期三

如何加密 Web.config 中的 connectionStrings

2008/06/20


程式筆記本 - 如何加密 Web.config 中的 connectionStrings
1.隨便找個 web.config,放到要做 encryption 的電腦上,假設放在C:\Inetpub\wwwroot\XXX
2.打開command 視窗,執行CD\WINDOWS\Microsoft.NET\Framework\v2.0.50727
3.執行aspnet_regiis -pef connectionStrings C:\Inetpub\wwwroot\XXX
4.在成功執行 encryption 後,根據 Windows 版本執行以下的指令:
  Windows 2003:
  aspnet_regiis -pa "NetFrameworkConfigurationKey" "Network Service"

  Windows 2000 / XP:
  aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET"
5.成功後照第3步為真正要加密的web.config做加密
6.要解密的話,把參數 -pef 改成 -pdf 就可以了
ps1:3、4在各別電腦上應只需執行一次,目的只是讓IIS能讀到key
ps2:如果是app.config的話,先把檔名改為web.config,加密完再改回來即可


-------------------------------------------------------------------------------
Web.config Encryption
張貼者: 杜B 標籤: 經驗之談 27 October 2007 又是一個 quick note,.NET Framework 2.0 已經內建 web.config 的 encryption,而且不用更改任何 source code。做法如下:

1. 隨便找個 web.config,放到要做 encryption 的電腦上

2. 執行 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pef connectionStrings C:\Inetpub\wwwroot\XXX
(會自動找 web.config,XXX 是你在第一步找來的「隨便 web.config」)

3. 在成功執行一次 encryption 後,根據 Windows 版本執行以下的指令:
Windows 2003:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pa "NetFrameworkConfigurationKey" "Network Service"

Windows 2000 / XP:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pa "NetFrameworkConfigurationKey" "ASPNET"

4. 最後再如常執行第二步的指令,正式替 web.config 做 encryption。

5. 完成後 .NET Web App 會自動在 runtime 做 decryption,唯注意 encryption 需在執行該 web app 的電腦上執行,即不可以預先在 development machine 做好才放到 production machine。

--
注意:


次序必需正確,否則 encrypt 之後未必能 decrypt
要 decrypt 的話,把參數 -pef 改成 -pdf 就可以了

沒有留言: