2017年9月21日 星期四

[研究] [ASP.NET] Web.Config 資料庫連線字串加密、解密方法

[研究] [ASP.NET] Web.Config 資料庫連線字串加密、解密方法

2017-09-21

工具 Visual Studio 2017 + .NET Framework 4.7

建立RSA金鑰容器(Key Container)

aspnet_regiis.exe  -pc  “MyKeys"  –exp

Web.config設定RsaProtectedConfigurationProvider 區段

<configProtectedData>
<providers>
<add name=“MyProtectedProvider"
                   type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
keyContainerName=“MyKeys"
useMachineContainer="true" />
</providers>
</configProtectedData>


切換目錄
cd  C:\Windows\Microsoft.NET\Framework64\v4.0.30319     

使用MyProtectedProvider 來針對 Web.config 中的 ConnectionStrings 加密
aspnet_regiis.exe -pef connectionStrings "D:\MyWebApp\MyWebApp" -prov  "MyProtectedProvider"    

匯出RSA 金鑰容器
aspnet_regiis.exe -px “MyKeys” D:\MyKeys.xml –pri  

匯入RSA 金鑰容器
aspnet_regiis.exe -pi “MyKeys” D:\MyKeys.xml     

賦予帳戶 IIS AppPool\DefaultAppPool 權限來使用 金鑰容器
aspnet_regiis.exe -pa “MyKeys” "IIS AppPool\DefaultAppPool"     

連線字串解密方法
aspnet_regiis.exe -pdf connectionStrings "D:\MyWebApp\MyWebApp"     

(待續)

沒有留言:

張貼留言