1. <var id="fe6gj"></var>

    <rp id="fe6gj"><nav id="fe6gj"></nav></rp>

    <noframes id="fe6gj"><cite id="fe6gj"></cite>

    <ins id="fe6gj"><button id="fe6gj"><p id="fe6gj"></p></button></ins>
    1. <tt id="fe6gj"><i id="fe6gj"><sub id="fe6gj"></sub></i></tt>
        始創于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        您的位置: 網站首頁 > 幫助中心>文章內容

        web.config本地加密解密BAT

        發布時間:  2012/6/23 18:15:22

        打開.Net Framework附帶的SDK命令提示符。
          加密命令:
          aspnet_regiis -pe “connectionStrings” -app “/encrypttest”
          -pe開關用來指定web.config中需要加密的節(Web.Config文件中的connectionStrings配置節)。
          -app開關用來指定IIS里面的虛擬目錄,如果為根目錄網站,為”/”.
          解密命令:
          aspnet_regiis -pd “connectionStrings” -app “/encrypttest”
          唯一的區別就是,我們用-pd開關代替了-pe開關。
          1、加密EncryptWebConfig.bat
          @echo off
          C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef “connectionStrings” “D:\Program Files\Microsoft.NET\ Pet Shop 4.0Web”
          PAUSE
          2、解密DecryptWebConfig.bat
          @echo off
          C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf “connectionStrings” “D:\Program Files\Microsoft.NET\ Pet Shop 4.0Web”
          PAUSE
          解決方法是:
          進dos運行:
          aspnet_regiis -pa “NetFrameworkConfigurationKey” “NT AUTHORITY\NETWORK SERVICE”
          如果運行出錯,需要把目錄 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 放入環境變量path中。
          此時就可以成功訪問網站了。
          同樣可以通過命令行來實現“RSAProtectedConfigurationProvider”加密
          現在把找到文件附在下面:
          我們如果想對web.config的數據庫連接字符串進行加密的話,那么這里提供了兩個方法。
          方法一、
          使用“DataProtectionConfigurationProvider”形式加密,創建tmdsb.aspx文件,代碼如下:
          需要添加引用
          using System.Web.Configuration;
          using System.IO;
          //加密
          protected void Button1_Click(object sender, EventArgs e)
          {
          Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
          ConfigurationSection section = config.GetSection(“connectionStrings”);
          if (section != null && !section.SectionInformation.IsProtected)
          {
          section.SectionInformation.ProtectSection(“DataProtectionConfigurationProvider”);
          config.Save();
          }
          }
          //解密
          protected void Button2_Click(object sender, EventArgs e)
          {
          Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
          ConfigurationSection section = config.GetSection(“connectionStrings”);
          if (section != null && section.SectionInformation.IsProtected)
          {
          section.SectionInformation.UnprotectSection();
          config.Save();
          }
          }
          總結:此方法很方便,并且很簡單,但安全性沒有密鑰加密高。
          方法二、
          使用“RSAProtectedConfigurationProvider”形式來加密
          test.aspx程序文件基本如上,
          把
          section.SectionInformation.ProtectSection(“DataProtectionConfigurationProvider”);
          改成
          section.SectionInformation.ProtectSection(“RSAProtectedConfigurationProvider”);
          但這個時候你訪問網站的時候很有可能會出現
          說明:
          在處理向該請求提供服務所需的配置文件時出錯。請檢查下面的特定錯誤詳細信息并適當地修改配置文件。
          分析器錯誤信息: 未能使用提供程序“RsaProtectedConfigurationProvider”進行解密。
          提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
          這樣的錯誤,解決方法是:
          進dos運行:aspnet_regiis -pa “NetFrameworkConfigurationKey”
          “NT AUTHORITY\NETWORK SERVICE”
          如果運行出錯,需要把目錄 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
          放入環境變量path中。此時就可以成功訪問網站了。
          同樣可以通過命令行來實現“RSAProtectedConfigurationProvider”加密
          注意:你也可以不運行 aspnet_regiis -pa “NetFrameworkConfigurationKey”
          “NT AUTHORITY\NETWORK SERVICE”命令來注冊默認的
          RsaProtectedConfigurationProvider 的RSA 密鑰容器
          方法如下:
         。保﹦摻ㄒ粋可導出的rsa密鑰容器,命名為Key
          aspnet_regiis -pc “Key” -exp
         。玻┰谀阋用艿男畔⑶懊嬷付荑容器,如:
          <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=”SQLConnString” connectionString=”Data Source=yourIP;Initial Catalog=test;User Id=yourID;Password=yourPassword;”
          providerName=”System.Data.SqlClient” />
          </connectionStrings>
          并且確保在configuration節的xmlns屬性有如下值:
         。常⿲ε渲梦募M行加密
          aspnet_regiis -pef “connectionStrings” “E:\project\Test” -prov “KeyProvider”
          參數分別為:需要加密的配置節、項目所在目錄的物理路徑、加密所使用的密鑰容器名稱
          再看web.config文件,就會發現connectionStrings節已經被加密了,但
          是運行程序會發現程序仍然可以正確訪問數據庫。
          此時,只需運行:
          aspnet_regiis -pdf “connectionStrings” “E:\project\Test”
          就可以對web.config文件進行解密。
         。ㄗ⒁,如果還是有錯誤,那可能是您沒有給生成的密匙文件足夠的權限,
          去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
          目錄下,找到剛生成的密匙文件,把network service用戶的讀取權限賦予給它,就可以了,
          直接用命令的話也可以:命令如下 aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE” ,
          可能需要重新啟動iis
         。矗┌衙荑容器導出為xml文件
          aspnet_regiis -px “Key” “e:\Key.xml”
          這個命令只導出公鑰,因此以后只能用于加密,而無法解密。
          aspnet_regiis -px “Key” “e:\Keys.xml” -pri
          這個則連私鑰一起導出了,所以我們要用這個。
         。担┌衙荑容器刪除
          aspnet_regiis -pz “Key”
          刪除后再運行程序,會提示出錯:
          分析器錯誤信息: 未能使用提供程序“KeyProvider”進行解密。
          提供程序返回錯誤信息為: 打不開 RSA 密鑰容器。
          同理可以證明,在任何一臺未安裝正確的密鑰容器Key的機器上,
          程序都無法對connectionStrings節進行解密,因此也就無法正常運行。
         。叮⿲雓ey.xml文件
          aspnet_regiis -pi “Key” “e:\Keys.xml”
          此時,再運行程序會發現又可以解密了。證明加密與解密機制運行正常。
          最后說一下這個機制所提供的安全性保障可以運用在什么方面:
          對winform程序的app.config進行加密實際意義并不大,因為無論如何,
          客戶機都可以通過運行aspnet_regiis -pdf 來對配置文件進行解密,從而暴露敏感信息。
          對于web.config進行加密的意義也僅限于,當web.config文件不小心泄露時,
          不會同時泄露敏感信息,如果惡意攻擊者已經取得了在服務器上運行程序的權限,
          那么同app.config一樣,可以很容易通過通過運行aspnet_regiis -pdf 獲取明文了。
          還有,通過aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE”
          控制對不同用戶對密鑰容器的訪問權限,應該還可以進一步獲取一些安全性,
          比如可以控制某些用戶即使登錄到服務器上,也無法用aspnet_regiis -pdf對配置文件進行解密。

        億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
           聯系:億恩小凡
           QQ:89317007
           電話:0371-63322206


        本文出自:億恩科技【www.endtimedelusion.com】

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

      1. 您可能在找
      2. 億恩北京公司:
      3. 經營性ICP/ISP證:京B2-20150015
      4. 億恩鄭州公司:
      5. 經營性ICP/ISP/IDC證:豫B1.B2-20060070
      6. 億恩南昌公司:
      7. 經營性ICP/ISP證:贛B2-20080012
      8. 服務器/云主機 24小時售后服務電話:0371-60135900
      9. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      10. 專注服務器托管17年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線

         
         
        av不卡不卡在线观看_最近2018年中文字幕_亚洲欧美一区二区三区_一级A爱做片免费观看国产_日韩在线中文天天更新_伊人中文无码在线