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)在你要加密的信息前面指定密钥容器,如:
|
|