[ASP .NET]簡易web.config加密流程

[ASP .NET]簡易web.config加密流程

以Microsoft .Net Framework SDK來執行加密作業,需在網站所處的Server主機上執行,且該網站需設定應用程式集區,加密是針對web.config中每個區塊獨立加密,以加密appSettings為例:

Step 1. 在程式集中選擇Microsoft .Net Framework SDK v2.0 > SDK命令提示字元,開啟command視窗。

Step 2. 於command視窗中Key in:aspnet_regiis –pef appSettings加上網站實體folder路徑,按下Enter執行,如出現”Encrypting configuration section…. Succeeded”即表示成功。

appSettings加密即完成。

Step 3. 如要解密,則於command視窗中Key in:aspnet_regiis –pdf appSettings加上網站實體folder路徑,按下Enter執行,如出現”Decrypting configuration section…. Succeeded”即表示成功,appSettings就會恢復原本的樣子。

說明:

  1. 如要加密其他區塊,則依照區塊名稱改掉appSettings(如connectionStrings)即可。
  2. 於程式中直接以ConfigurationSettings.AppSettings("")即可取得解密後的Value,不須作任何更動。
  3. 無法加密的區塊:
    • <processModel>
    • <runtime>
    • <mscorlib>
    • <startup>
    • <system.runtime.remoting>
    • <configProtectedData>
    • <satelliteassemblies>
    • <cryptographySettings>
    • <cryptoNameMapping>
    • <cryptoClasses>
  4. 因加密是使用當前電腦的金鑰來執行,故加密過的web.config無法在其他電腦上面使用。

參考資料:

https://msdn.microsoft.com/en-us/library/ff650304.aspx

如想看比較詳細的操作,也可參考下面連結

https://dotblogs.com.tw/wasichris/2016/01/01/235040