加密,解密Web.Config
加密:
在命令提示符下键入:
aspnet_regiis -pef connectionStrings 要加密的web.config完整路经
解密:
在命令提示符下键入:
aspnet_regiis -pdf connectionStrings 要解密的web.config完整路经
D:\Program Files\Microsoft Visual Studio 9.0\VC>aspnet_regiis -pdf connectionStrings c:\
正在解密配置节...
成功!
D:\Program Files\Microsoft Visual Studio 9.0\VC>aspnet_regiis -pef connectionStrings c:\
正在加密配置节...
成功!
D:\Program Files\Microsoft Visual Studio 9.0\VC>
aspnet_regiis.exe -pef connectionStrings C:\ -prov "DataProtectionConfigurationProvider"
使用“DataProtectionConfigurationProvider”方式加密
aspnet_regiis.exe -pe "connectionStrings" -app "/SampleApplication" -prov "TripleDESProvider"
使用“TripleDESProvider”方式加密
一、aspnet_regiis.exe加解密
使用ASPNET_REGIIS命令对web.config加解密步骤如下:
回车后,aspnet_regiis会去c:/Inetpub/wwwroot中寻找VisualPath网站目录中的web.config文件,进而加密connectionStrings区块。类似也可以加密aapSettings、mailSettings区块。
-app web应用程序的虚拟目录
-prov 何种加密方式的Provider
注:
如果应用程序目录所在目录不在c:/Inetpub/wwwroot路径下,而是自定义的路径,无论如何下达aspnet_regiis指令,都会因为路径错,无法顺利加密成功。
二、Configuration API 加解密
Configuration类(System.Configuration.Configuration)
WebConfigurationManager类(System.Web.Configuration.WebConfigurationManager)
Windows Data Protection API ,加密字符串"DataProtectedConfigurationProvider"
(2)RSAProtectedConfigurationProvider
使用RSA算法加解密 ,加密字符串"RSAProtectedConfigurationProvider"
解密
myConnetionStrings.SectionInformation.UnprotectSection();
myConfiguration.Save();
使用ASPNET_REGIIS命令对web.config加解密步骤如下:
step1 切换到,NET Framework对应目录
cd c:/windows/Microsoft.NET/Framework/v2.0. 50727step2 加密 connectionString区块
aspnet_regiis -pe "connectionStrings" -app "VisualPath" -prov "RASProtectedConfigurationProvider"回车后,aspnet_regiis会去c:/Inetpub/wwwroot中寻找VisualPath网站目录中的web.config文件,进而加密connectionStrings区块。类似也可以加密aapSettings、mailSettings区块。
-pe 加密的区块<connectionStrings/><aapSettings/><mailSettings/>
-app web应用程序的虚拟目录
-prov 何种加密方式的Provider
step3 解密区块
aspnet_regiis -pd "connectionStrings" -app "VisualPath"注:
如果应用程序目录所在目录不在c:/Inetpub/wwwroot路径下,而是自定义的路径,无论如何下达aspnet_regiis指令,都会因为路径错,无法顺利加密成功。
二、Configuration API 加解密
Configuration类(System.Configuration.Configuration)
WebConfigurationManager类(System.Web.Configuration.WebConfigurationManager)
step1 获取当前应用程序路径
String appPath=this.Request.ApplicationPath;step2 打开该路径的应用程序的web.config
Configuration config=WebConfigurationManager.OpenWebConfiguration(appPath);step3 获取<connectionStrings>区块
ConnetionStringsSection connectionStrings=config.ConnectionStrings;step4 加密Provider
(1)DPAPIProtectedConfigurationProviderWindows Data Protection API ,加密字符串"DataProtectedConfigurationProvider"
(2)RSAProtectedConfigurationProvider
使用RSA算法加解密 ,加密字符串"RSAProtectedConfigurationProvider"
Configuration myConfiguration =null;
ConfigurationSection myConnetionStrings =null;
myConfiguration=WebconfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
appSettings=myConfiguration.GetSection("connectionStrings");
if(!myConnetionStrings.SectionInformation.IsProtected)
{
myConnetionStrings.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
//myConnetionStrings.SectionInformation.ProtectSection("RSAConfigurationProvider");
myConfiguration.Save();
}
ConfigurationSection myConnetionStrings =null;
myConfiguration=WebconfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
appSettings=myConfiguration.GetSection("connectionStrings");
if(!myConnetionStrings.SectionInformation.IsProtected)
{
myConnetionStrings.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
//myConnetionStrings.SectionInformation.ProtectSection("RSAConfigurationProvider");
myConfiguration.Save();
}
myConnetionStrings.SectionInformation.UnprotectSection();
myConfiguration.Save();