web.config加密解密

可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码、数据库连接字符串和加密密钥)。对配置信息进行加密后,即使攻击者获取了对配置文件的访问,也可以使攻击者难以获取对敏感信息的访问,从而改进应用程序的安全性。

加密:aspnet_regiis -pe "connectionStrings" -app "/Myweb" -prov RSAProtectedConfigurationProvider
说明:"connectionStrings" 是要加密的节,"/Myweb"是web虚拟目录,RSAProtectedConfigurationProvider为指定的加密方式
解密:aspnet_regiis -pd "connectionStrings" -app "/Myweb"

(aspnet_regiis位于%windows%\Microsoft.NET\Framework\versionNumber下)

建议:将加密解密的命令行写成批处理文件.bat,操作更方便。

加密时如果报RSA key container not found错,则在cmd下执行:
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"

以注册RSA 密钥容器,其中NetFrameworkConfigurationKey 是 RsaProtectedConfigurationProvider 的默认provider。

 

如果是使用虚拟主机等不能访问物理的服务器,你仍然能够通过编程方式加密的连接字符串:

            Configuration config = Configuration.GetWebConfiguration(Request.ApplicationPath);
            ConfigurationSection section = config.Sections["connectionStrings"];
            section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); ;
            config.Update();

更详细请参见MSDN:使用受保护的配置加密配置信息

http://shanyou.cnblogs.com/archive/2006/02/08/327196.aspx

http://azhai.cnblogs.com/archive/2006/01/30/324346.html

http://www.cnblogs.com/txwsh1/archive/2007/05/16/748993.html

原文地址:https://www.cnblogs.com/guojin705/p/1264254.html