配色: 字号:
web.config本地加密解密BAT命令
2012-06-12 | 阅:  转:  |  分享 
  
web.config本地加密解密BAT命令

打开.NetFramework附带的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

@echooffC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe-pef“connectionStrings”“D:\ProgramFiles\Microsoft.NET\PetShop4.0Web”PAUSE2、解密DecryptWebConfig.bat@echooffC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe-pdf“connectionStrings”“D:\ProgramFiles\Microsoft.NET\PetShop4.0Web”PAUSE

解决方法是:

进dos运行:

aspnet_regiis-pa“NetFrameworkConfigurationKey”“NTAUTHORITY\NETWORKSERVICE”

如果运行出错,需要把目录C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727放入环境变量path中。

此时就可以成功访问网站了。

同样可以通过命令行来实现“RSAProtectedConfigurationProvider”加密

现在把找到文件附在下面:

我们如果想对web.config的数据库连接字符串进行加密的话,那么这里提供了两个方法。

方法一、

使用“DataProtectionConfigurationProvider”形式加密,创建tmdsb.aspx文件,代码如下:

需要添加引用

usingSystem.Web.Configuration;usingSystem.IO;//加密protectedvoidButton1_Click(objectsender,EventArgse){Configurationconfig=WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);ConfigurationSectionsection=config.GetSection(“connectionStrings”);if(section!=null&&!section.SectionInformation.IsProtected){section.SectionInformation.ProtectSection(“DataProtectionConfigurationProvider”);config.Save();}}//解密protectedvoidButton2_Click(objectsender,EventArgse){Configurationconfig=WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);ConfigurationSectionsection=config.GetSection(“connectionStrings”);if(section!=null&§ion.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”

“NTAUTHORITY\NETWORKSERVICE”

如果运行出错,需要把目录C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

放入环境变量path中。此时就可以成功访问网站了。

同样可以通过命令行来实现“RSAProtectedConfigurationProvider”加密

注意:你也可以不运行aspnet_regiis-pa“NetFrameworkConfigurationKey”

“NTAUTHORITY\NETWORKSERVICE”命令来注册默认的

RsaProtectedConfigurationProvider的RSA密钥容器

方法如下:

1)创建一个可导出的rsa密钥容器,命名为Key

aspnet_regiis-pc“Key”-exp

2)在你要加密的信息前面指定密钥容器,如:





献花(0)
+1
(本文系红人会首藏)