详解C#App.config和Web.config加密

打开cmd,进入vs安装目录C:WindowsMicrosoft.NETFramework64v4.0.30319


cd C:WindowsMicrosoft.NETFramework64v4.0.30319

如果是Web.config就直接加密,是App.config就先改为Web.config才可以进行加密


aspnet_regiis -pef "节点" "项目路径"

例如:

需要加密的App.config数据库连接字符串为



 

加密命令为


aspnet_regiis -pef "connectionStrings" "Web.config所在目录"

如加密失败

解决方案:

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


aspnet_regiis -pc "Key" -exp 

将Web.cofig/App.config的configuration增加属性值xmlns,即改为



将数据库连接字符串改为以下:


  
   
   

开始对配置文件进行加密


aspnet_regiis -pef "connectionStrings" "Web.config所在目录" -prov "KeyProvider"

注意:vs会提示是否修改,选择全是

解密配置文件


aspnet_regiis -pdf "connectionStrings" "Web.config所在目录" 

如果是App.config改成的Web.config,加密成功之后再改为App.config,并删除configuration的属性xmlns值

未加密的Web.config/App.config文件内容:




   
    

修改为加密后的Web.config/App.config文件内容:




  
    

加密后的Web.config/App.config文件内容:




  
    

Rsa Key lSLu2RVnlfr5om5MpBuqyhBETF6dI/glZ3zlfOQvzj+l1YmsOcfGVC1LgrDFcPLEbF/r1IZZYVnQuesz3AeVUkpNCG2OfMWDeaPULtJ5Ay24SYnBR4FNtQQSf1pijelXRGE8pzH7s49RLsKWQuwVTyMrOUoIMcmD4xIPmN/cqpQ= deXEhu/mqe+WkD51qXhi9jwBhEurU6EQXBQINOGOyDgpw/W4xTpi3DtTDcEzJXbaHvyKaXLfkPxxljce07ANtN7VXRfDov0Olsq/3+hkYqVXRI5A80XVkOKh2CQaVWx/GJC7JBbbRlKXJvS93M+OQWGKpW0twcZlL1ns97g5w8QstGN6vszAiZw1z6gKXlsrMf9224ExGq+dGJS9BSU+mxaKkd9EAVELMtWv2r7jIXsEneggDR49Mtdu91j1dsDj6am3NcaHmRQ=

导出密钥容器


spnet_regiis -px "Key" "d:Key.xml" 

注意:加上-pri参数为导出公钥+私钥

导入密钥容器


aspnet_regiis -pi "Key" "d:Key.xml" 

删除密钥容器


aspnet_regiis -pz "Key"

注意:删除密钥程序会报错

0.234505s