亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#為配置文件加密的實現方法

2020-01-24 02:20:36
字體:
來源:轉載
供稿:網友

本文實例講述了C#為配置文件加密的實現方法,分享給大家供大家參考。具體實現方法如下:

一般來說,在web.config或app.config文件里我們經常會存儲一些敏感信息,比如connectionStrings或者appSettings,比如像下面的文件。

復制代碼 代碼如下:
<?xml version="1.0"?>
<configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.0" />
    </system.web>
    <connectionStrings>
      <add name="MyNwConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword;"/>
    </connectionStrings>
    <appSettings>
      <add key="User" value="myUsername"/>
      <add key="Password" value="myPassword"/>
    </appSettings>
</configuration>

復制代碼 代碼如下:
using System;
using System.Configuration;

namespace WebConfigEncryptTest
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string user = ConfigurationManager.AppSettings.Get("User");
            string password = ConfigurationManager.AppSettings.Get("Password");
            string connectionString = ConfigurationManager.ConnectionStrings["MyNwConnectionString"].ConnectionString;
        }
    }
}

一、加密文件可以使用的Provider

.NET為我們提供了一個工具aspnet_regiis.exe來對web.config文件中的敏感信息進行加密(app.config文件可以先改名為web.config,加密后再改回app.config)。你可以使用兩個provider中的一個來進行加密:

System.Configuration.DPAPIProtectedConfigurationProvider:在System.Configuration.dll中,使用Windows DPAPI(Data Protection API)來進行加密,密鑰存在Windows Local Security Authority(LSA)中。

注意:當使用DPAPIProtectedConfigurationProvider時,加密文件所使用的帳號需要與運行web application的帳號相同,否則web application無法解密加密的內容。
System.Configuration.RSAProtectedConfigurationProvider:在System.Configuration.dll中,使用RSA算法來進行加密(RSA算法是非對稱加密,具體可參見前面一篇文章C#對稱加密與非對稱加密),公鑰存放在config文件當中,只有加密的計算機有密鑰。RSAProtectedConfigurationProvider通常是默認的缺省provider。

二、加密文件的命令

加密web.config文件可以使用:

復制代碼 代碼如下:
aspnet_regiis -pef section web-app-physical-dir

Encrypt the configuration section. Optional arguments:

[-prov provider] Use this provider to encrypt.

比如運行下面的命令就會分別對connectionStrings和appSettings中的信息進行加密:

復制代碼 代碼如下:
aspnet_regiis.exe -pef "connectionStrings" "C:/myweb/HelloService"

aspnet_regiis.exe -pef "appSettings" "C:/myweb/HelloService"

加密后的web.config文件變成:

復制代碼 代碼如下:
<?xml version="1.0"?>
<configuration>
    <system.web>
      <compilation targetFramework="4.0" />
    </system.web>
    <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
        <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>E2fO9C0TJVxImLYQZza+fCQdDbTpNh/kOKLRsK6zcFjkgtUCl6SnMViuu/2G1NVTxqXyEWYwyK6AiCZA+feeG/AvYvmEEVopVDb0YyGeuJgEI1r8HxTl8Cv+f2EIimP7LJI+JRZVerI4MU6Ke3wxm2S/ATc73/W6eg9808f4/D6J0pp3wND4E79gBiAnBHFYQIefdJYUsmHR9z9LiIqjCllkkj/JB0kso0kGJ9i+iew1Jae5jugIN8gPxsXbCfmw6ru3I3Kbpa8Z5AllfkFA2YKrsuV3c7eLLJ0kB4lsIJIUTy3kRyA4GjdChOmlNwwffIbhwUPPxa25CiF0VAq27Q==</CipherValue>
                    </CipherData>
                </EncryptedKey>
            </KeyInfo>
            <CipherData>
                <CipherValue>I1DWG11Iz/rq+NC9C/21B3Q22J9+IexHPH6kkWvQPeHUO6OvOWeQbk3wHALR2ql8pz0gQJFyfTypMk/xSSikFI2Dcy5mgYY3kP73bQQ83ho3O1HPw9TsRtK1G8gmVNGyQLj7iTRcoGfiYYmSibPynv1MzSV1qDXlnVfKiMqKRZ5ZPiMSMc5u3dDEL/JW1oCvAGs5tHrZU5+vgvm0yCmSuCWZbXva+iv9J35EQqs58pq+hwVo1hg1dffdupGCBykaXGl5VX3TIGc=</CipherValue>
            </CipherData>
        </EncryptedData>
    </connectionStrings>
    <appSettings configProtectionProvider="RsaProtectedConfigurationProvider">
        <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>WVoFIs8rSEgqKw1C0QCmePs7WK6EIoGCfdx9CTJNmABoVvoEWPnOEQwz/6Ruu0rGwa7q91KuhGILmy4NEN0padnX6FScCdEzP6CS59U3IFumYmTrD7D9ihqFO2aIL/SuBvV3D2kxhHaYGFaPuvYgsyOLf3+aYR3O/uh/k5wZxLoIeKUUrT762J3bdaK6cJWQeuOu4j2vDXEdawdwhlnK12UV8+/AXZNlFW1N3Z0RUVFX1nMSwTaIu8F3tZ9hCFbGwbTm2T0XnfDOcB6dCxCutqC8pXD36laAfiSANzAWoC+Yhf5eFSj24fX0NU6UTQB8fqLyOgWsIMLxZLKVrwnlmg==</CipherValue>
                    </CipherData>
                </EncryptedKey>
            </KeyInfo>
            <CipherData>
                <CipherValue>5W2KhG/oETLUDptobcOM52x1qD/g9A0By/wcGXI+fm7EdcD8mT3TxsLVBVcHRBCyUO7OIHl8NyCrduRSYwyd8ggBCriQ5KrbAmW4LXrNnw/JjjCEJWPuRcRucVRfpgap2nHh6BXRXC/AU6v0GcRqy7LV8179PgGtyAa8IE1mV/w=</CipherValue>
            </CipherData>
        </EncryptedData>
    </appSettings>
</configuration>

其中RSAProtectedConfigurationProvider是默認的缺省provider,如果想使用DPAPIProtectedConfigurationProvider,可以用-prov參數指明:

aspnet_regiis.exe -pef "connectionStrings" "C:/myweb/HelloService" -prov "DataProtectionConfigurationProvider"

aspnet_regiis.exe -pef "appSettings" "C:/myweb/HelloService" -prov "DataProtectionConfigurationProvider"

加密配置文件后,源程序不需要做任何改動。如果要修改或添加新的配置信息,需要先解密配置文件。不論使用哪種Provider,都只能在進行加密的計算機上對配置文件進行解密。

三、解密文件的命令

解密的命令如下(解密命令不需要-prov參數):

復制代碼 代碼如下:
-pdf section web-app-physical-dir

Decrypt the configuration section.

aspnet_regiis.exe -pdf "connectionStrings" "C:/myweb/HelloService"

aspnet_regiis.exe -pdf "appSettings" "C:/myweb/HelloService"

四、總結

配置文件中經常會有用戶名密碼的敏感信息,為了防止該信息泄露,需要對配置文件進行加密。加密與解密可以使用.NET提供的工具aspnet_regiis.exe,可以在Windows .NET的文件夾中找到它。

該工具只對web.config文件進行修改,如果要加密或解密app.config,可以先將app.config文件改名為web.config,加密或解密后再改回來。

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美最猛性xxxxx免费| 国产欧美日韩视频| 欧美孕妇性xx| 亚洲美女激情视频| 亚洲欧美日韩天堂一区二区| 亚洲精品99久久久久| 亚洲自拍偷拍色图| 日韩专区在线观看| 国产精品视频白浆免费视频| 在线看片第一页欧美| 欧美一级成年大片在线观看| 精品美女久久久久久免费| 成人黄色大片在线免费观看| 91深夜福利视频| 国内精品一区二区三区四区| 中文字幕亚洲综合久久| 日韩成人黄色av| 国内精品视频久久| 亚洲黄色在线看| 国产成人精彩在线视频九色| 日韩女在线观看| 国产亚洲激情视频在线| 亚洲人成77777在线观看网| 成人精品在线视频| 欧美黄色三级网站| 欧美精品久久久久久久免费观看| 日日骚久久av| 日韩欧美在线播放| 这里只有视频精品| 欧美电影在线观看网站| 久久久影视精品| 日韩美女视频中文字幕| 一区二区欧美激情| 91系列在线观看| 亚洲自拍欧美色图| 国产成人精品一区二区| 毛片精品免费在线观看| 亚洲乱亚洲乱妇无码| 亚洲天堂男人天堂女人天堂| 欧美日韩中文字幕日韩欧美| 亚洲电影在线看| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲在线www| 亚洲欧美日韩直播| 国产视频一区在线| 一区二区亚洲欧洲国产日韩| 亚洲三级黄色在线观看| 精品久久久中文| 国产精品亚洲网站| 久久综合久久八八| 一区三区二区视频| 国产这里只有精品| 日韩av最新在线观看| 91在线|亚洲| 欧美一区二区三区免费观看| 欧美日韩性视频| 欧美性xxxx极品hd满灌| 国产丝袜一区二区三区| 免费av一区二区| 国产精品十八以下禁看| 国产精品专区h在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 97视频免费在线观看| 日韩二区三区在线| 高清亚洲成在人网站天堂| 亚洲精品资源美女情侣酒店| 精品综合久久久久久97| 91国语精品自产拍在线观看性色| 伊人久久免费视频| 亚洲欧美中文另类| 一本色道久久综合狠狠躁篇的优点| 国产精品久久久久久久久久99| 97视频com| 久久精品小视频| 欧美电影在线观看| 91天堂在线观看| 久久综合免费视频| 欧美精品电影在线| 亚洲字幕在线观看| 日韩欧美国产免费播放| 久久综合久久八八| 久久久女女女女999久久| 欧美不卡视频一区发布| 日韩有码在线电影| 日av在线播放中文不卡| 国产精品白嫩美女在线观看| 久久久视频在线| 这里只有精品在线观看| 国产精品激情av在线播放| 亚洲精品一区中文字幕乱码| 亚洲在线www| 久久成年人免费电影| 成人高清视频观看www| 亚洲人成网站在线播| 国产亚洲美女精品久久久| 538国产精品一区二区免费视频| 亚洲精品短视频| 97国产suv精品一区二区62| 亚洲欧洲av一区二区| 一区二区三区久久精品| 国产精品人人做人人爽| 国产欧美 在线欧美| 热99在线视频| 97精品国产97久久久久久春色| 日本成人精品在线| 国产精品久久久久秋霞鲁丝| 亚洲国内精品视频| 精品视频9999| 国产中文欧美精品| 亚洲国产精品999| 国内成人精品视频| 亚洲xxxx18| 国产精品第10页| 狠狠爱在线视频一区| 成人a在线观看| 亚洲综合中文字幕68页| 日韩在线观看成人| 国产精品日韩久久久久| 亚洲一区美女视频在线观看免费| 日韩欧美在线免费| 亚洲区免费影片| 亚洲精品综合精品自拍| 欧美性20hd另类| 另类美女黄大片| 日韩av在线不卡| 青青久久av北条麻妃黑人| 国产精品视频在线播放| 亚洲综合大片69999| 伦伦影院午夜日韩欧美限制| 国产91在线播放| 国产精品户外野外| 色综合久综合久久综合久鬼88| 国产精品亚洲第一区| 日韩精品中文字幕视频在线| 亚洲欧美国内爽妇网| 日韩欧美精品在线观看| 日韩美女福利视频| 国产一区二区三区网站| 91精品综合视频| 亚洲天堂日韩电影| 91免费电影网站| 国产精品爽爽爽| 夜夜嗨av一区二区三区四区| 91av在线视频观看| 国产噜噜噜噜噜久久久久久久久| 精品国产欧美一区二区三区成人| www.亚洲免费视频| 精品视频在线播放免| 久久久999精品免费| 国产欧美一区二区三区久久人妖| 亚洲美女在线看| 国产日韩精品在线播放| 日韩精品在线播放| 亚洲最新中文字幕| 欧美中文在线观看| 欧美一区二区影院| 久久精品亚洲一区| 91精品免费视频| 国产原创欧美精品| 日韩一区二区三区在线播放| 国产成人中文字幕| 日韩av一区二区在线观看| 91av在线免费观看视频| 国产999精品久久久影片官网|