您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關C#中App.config和Web.config加密的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
打開cmd,進入vs安裝目錄C:\Windows\Microsoft.NET\Framework64\v4.0.30319
cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
如果是Web.config就直接加密,是App.config就先改為Web.config才可以進行加密
aspnet_regiis -pef "節點" "項目路徑"
例如:
需要加密的App.config數據庫連接字符串為
<connectionStrings> <add name="connStr" connectionString="Data Source=.;Initial Catalog=testDB;User ID=sa;Password=123456" /> </connectionStrings>
加密命令為
aspnet_regiis -pef "connectionStrings" "Web.config所在目錄"
如加密失敗
解決方案:
創建一個可導出的rsa密鑰容器,命名為Key
aspnet_regiis -pc "Key" -exp
將Web.cofig/App.config的configuration增加屬性值xmlns,即改為
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
將數據庫連接字符串改為以下:
<configProtectedData> <providers> <clear /> <add name="KeyProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="Key" useMachineContainer="true"/> </providers> </configProtectedData> <connectionStrings> <add name="connStr" connectionString="Data Source=.;Initial Catalog=testDB;User ID=sa;Password=123456;" providerName="System.Data.SqlClient" /> </connectionStrings>
開始對配置文件進行加密
aspnet_regiis -pef "connectionStrings" "Web.config所在目錄" -prov "KeyProvider"
注意:vs會提示是否修改,選擇全是
解密配置文件
aspnet_regiis -pdf "connectionStrings" "Web.config所在目錄"
如果是App.config改成的Web.config,加密成功之后再改為App.config,并刪除configuration的屬性xmlns值
未加密的Web.config/App.config文件內容:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <connectionStrings> <add name="connStr" connectionString="Data Source=.;Initial Catalog=testDB;User ID=sa;Password=123456" /> </connectionStrings> </configuration>
修改為加密后的Web.config/App.config文件內容:
<?xml version="1.0" encoding="utf-8" ?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <configProtectedData> <providers> <clear /> <add name="KeyProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="Key" useMachineContainer="true"/> </providers> </configProtectedData> <connectionStrings> <add name="connStr" connectionString="Data Source=.;Initial Catalog=testDB;User ID=sa;Password=123456;" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>
加密后的Web.config/App.config文件內容:
<?xml version="1.0" encoding="utf-8" ?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <configProtectedData> <providers> <clear /> <add name="KeyProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="Key" useMachineContainer="true"/> </providers> </configProtectedData> <connectionStrings configProtectionProvider="KeyProvider"> <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>Rsa Key</KeyName> </KeyInfo> <CipherData> <CipherValue>lSLu2RVnlfr5om5MpBuqyhBETF6dI/glZ3zlfOQvzj+l1YmsOcfGVC1LgrDFcPLEbF/r1IZZYVnQuesz3AeVUkpNCG2OfMWDeaPULtJ5Ay24SYnBR4FNtQQSf1pijelXRGE8pzH7s49RLsKWQuwVTyMrOUoIMcmD4xIPmN/cqpQ=</CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>deXEhu/mqe+WkD51qXhi9jwBhEurU6EQXBQINOGOyDgpw/W4xTpi3DtTDcEzJXbaHvyKaXLfkPxxljce07ANtN7VXRfDov0Olsq/3+hkYqVXRI5A80XVkOKh3CQaVWx/GJC7JBbbRlKXJvS93M+OQWGKpW0twcZlL1ns97g5w8QstGN6vszAiZw1z6gKXlsrMf9224ExGq+dGJS9BSU+mxaKkd9EAVELMtWv2r7jIXsEneggDR49Mtdu91j1dsDj6am3NcaHmRQ=</CipherValue> </CipherData> </EncryptedData> </connectionStrings> </configuration>
導出密鑰容器
spnet_regiis -px "Key" "d:\Key.xml"
注意:加上-pri參數為導出公鑰+私鑰
導入密鑰容器
aspnet_regiis -pi "Key" "d:\Key.xml"
刪除密鑰容器
aspnet_regiis -pz "Key"
注意:刪除密鑰程序會報錯
感謝各位的閱讀!關于“C#中App.config和Web.config加密的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。