web.config加解密

一、aspnet_regiis.exe加解密

使用ASPNET_REGIIS命令对web.config加解密步骤如下:

step1 切换到,NET Framework对应目录

cd c:/windows/Microsoft.NET/Framework/v2.0. 50727

step2 加密 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)DPAPIProtectedConfigurationProvider
Windows 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();
}
解密
myConnetionStrings.SectionInformation.UnprotectSection();
myConfiguration.Save();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值