亚洲综合社区欧美综合色-欧美逼逼一区二区三区-国产老熟女高潮精品网站-国产日韩最新视频在线看

始創(chuàng)于2000年 股票代碼:831685
咨詢(xún)熱線(xiàn):0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

web.config本地加密解密BAT

發(fā)布時(shí)間:  2012/6/23 18:15:22

打開(kāi).Net Framework附帶的SDK命令提示符。
  加密命令:
  aspnet_regiis -pe “connectionStrings” -app “/encrypttest”
  -pe開(kāi)關(guān)用來(lái)指定web.config中需要加密的節(jié)(Web.Config文件中的connectionStrings配置節(jié))。
  -app開(kāi)關(guān)用來(lái)指定IIS里面的虛擬目錄,如果為根目錄網(wǎng)站,為”/”.
  解密命令:
  aspnet_regiis -pd “connectionStrings” -app “/encrypttest”
  唯一的區(qū)別就是,我們用-pd開(kāi)關(guān)代替了-pe開(kāi)關(guān)。
  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
  解決方法是:
  進(jìn)dos運(yùn)行:
  aspnet_regiis -pa “NetFrameworkConfigurationKey” “NT AUTHORITY\NETWORK SERVICE”
  如果運(yùn)行出錯(cuò),需要把目錄 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 放入環(huán)境變量path中。
  此時(shí)就可以成功訪(fǎng)問(wèn)網(wǎng)站了。
  同樣可以通過(guò)命令行來(lái)實(shí)現(xiàn)“RSAProtectedConfigurationProvider”加密
  現(xiàn)在把找到文件附在下面:
  我們?nèi)绻雽?duì)web.config的數(shù)據(jù)庫(kù)連接字符串進(jìn)行加密的話(huà),那么這里提供了兩個(gè)方法。
  方法一、
  使用“DataProtectionConfigurationProvider”形式加密,創(chuàng)建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();
  }
  }
  總結(jié):此方法很方便,并且很簡(jiǎn)單,但安全性沒(méi)有密鑰加密高。
  方法二、
  使用“RSAProtectedConfigurationProvider”形式來(lái)加密
  test.aspx程序文件基本如上,
  把
  section.SectionInformation.ProtectSection(“DataProtectionConfigurationProvider”);
  改成
  section.SectionInformation.ProtectSection(“RSAProtectedConfigurationProvider”);
  但這個(gè)時(shí)候你訪(fǎng)問(wèn)網(wǎng)站的時(shí)候很有可能會(huì)出現(xiàn)
  說(shuō)明:
  在處理向該請(qǐng)求提供服務(wù)所需的配置文件時(shí)出錯(cuò)。請(qǐng)檢查下面的特定錯(cuò)誤詳細(xì)信息并適當(dāng)?shù)匦薷呐渲梦募?br />   分析器錯(cuò)誤信息: 未能使用提供程序“RsaProtectedConfigurationProvider”進(jìn)行解密。
  提供程序返回錯(cuò)誤信息為: 打不開(kāi) RSA 密鑰容器。
  這樣的錯(cuò)誤,解決方法是:
  進(jìn)dos運(yùn)行:aspnet_regiis -pa “NetFrameworkConfigurationKey”
  “NT AUTHORITY\NETWORK SERVICE”
  如果運(yùn)行出錯(cuò),需要把目錄 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
  放入環(huán)境變量path中。此時(shí)就可以成功訪(fǎng)問(wèn)網(wǎng)站了。
  同樣可以通過(guò)命令行來(lái)實(shí)現(xiàn)“RSAProtectedConfigurationProvider”加密
  注意:你也可以不運(yùn)行 aspnet_regiis -pa “NetFrameworkConfigurationKey”
  “NT AUTHORITY\NETWORK SERVICE”命令來(lái)注冊(cè)默認(rèn)的
  RsaProtectedConfigurationProvider 的RSA 密鑰容器
  方法如下:
 。保﹦(chuàng)建一個(gè)可導(dǎo)出的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節(jié)的xmlns屬性有如下值:
 。常⿲(duì)配置文件進(jìn)行加密
  aspnet_regiis -pef “connectionStrings” “E:\project\Test” -prov “KeyProvider”
  參數(shù)分別為:需要加密的配置節(jié)、項(xiàng)目所在目錄的物理路徑、加密所使用的密鑰容器名稱(chēng)
  再看web.config文件,就會(huì)發(fā)現(xiàn)connectionStrings節(jié)已經(jīng)被加密了,但
  是運(yùn)行程序會(huì)發(fā)現(xiàn)程序仍然可以正確訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。
  此時(shí),只需運(yùn)行:
  aspnet_regiis -pdf “connectionStrings” “E:\project\Test”
  就可以對(duì)web.config文件進(jìn)行解密。
 。ㄗ⒁,如果還是有錯(cuò)誤,那可能是您沒(méi)有給生成的密匙文件足夠的權(quán)限,
  去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
  目錄下,找到剛生成的密匙文件,把network service用戶(hù)的讀取權(quán)限賦予給它,就可以了,
  直接用命令的話(huà)也可以:命令如下 aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE” ,
  可能需要重新啟動(dòng)iis
 。矗┌衙荑容器導(dǎo)出為xml文件
  aspnet_regiis -px “Key” “e:\Key.xml”
  這個(gè)命令只導(dǎo)出公鑰,因此以后只能用于加密,而無(wú)法解密。
  aspnet_regiis -px “Key” “e:\Keys.xml” -pri
  這個(gè)則連私鑰一起導(dǎo)出了,所以我們要用這個(gè)。
 。担┌衙荑容器刪除
  aspnet_regiis -pz “Key”
  刪除后再運(yùn)行程序,會(huì)提示出錯(cuò):
  分析器錯(cuò)誤信息: 未能使用提供程序“KeyProvider”進(jìn)行解密。
  提供程序返回錯(cuò)誤信息為: 打不開(kāi) RSA 密鑰容器。
  同理可以證明,在任何一臺(tái)未安裝正確的密鑰容器Key的機(jī)器上,
  程序都無(wú)法對(duì)connectionStrings節(jié)進(jìn)行解密,因此也就無(wú)法正常運(yùn)行。
 。叮⿲(dǎo)入key.xml文件
  aspnet_regiis -pi “Key” “e:\Keys.xml”
  此時(shí),再運(yùn)行程序會(huì)發(fā)現(xiàn)又可以解密了。證明加密與解密機(jī)制運(yùn)行正常。
  最后說(shuō)一下這個(gè)機(jī)制所提供的安全性保障可以運(yùn)用在什么方面:
  對(duì)winform程序的app.config進(jìn)行加密實(shí)際意義并不大,因?yàn)闊o(wú)論如何,
  客戶(hù)機(jī)都可以通過(guò)運(yùn)行aspnet_regiis -pdf 來(lái)對(duì)配置文件進(jìn)行解密,從而暴露敏感信息。
  對(duì)于web.config進(jìn)行加密的意義也僅限于,當(dāng)web.config文件不小心泄露時(shí),
  不會(huì)同時(shí)泄露敏感信息,如果惡意攻擊者已經(jīng)取得了在服務(wù)器上運(yùn)行程序的權(quán)限,
  那么同app.config一樣,可以很容易通過(guò)通過(guò)運(yùn)行aspnet_regiis -pdf 獲取明文了。
  還有,通過(guò)aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE”
  控制對(duì)不同用戶(hù)對(duì)密鑰容器的訪(fǎng)問(wèn)權(quán)限,應(yīng)該還可以進(jìn)一步獲取一些安全性,
  比如可以控制某些用戶(hù)即使登錄到服務(wù)器上,也無(wú)法用aspnet_regiis -pdf對(duì)配置文件進(jìn)行解密。

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


本文出自:億恩科技【1tcdy.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話(huà):0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話(huà):0371-60135900
  • 專(zhuān)注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      1
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線(xiàn)