time 
设为首页】【收藏本站
当前位置: 主页 > 程序设计 > .net > .net入门 > 为web.config或app.config配置文件的敏感信息加密

为web.config或app.config配置文件的敏感信息加密

时间:2014-12-09 10:33 点击:1459次 字体:[ ]




在web.config或app.config文件里我们经常会存储一些敏感信息,比如connectionStrings或者appSettings,比如像下面的文件。

  1. <?xml version="1.0"?> 
  2. <configuration> 
  3.     <system.web> 
  4.       <compilation debug="true" targetFramework="4.0" /> 
  5.     </system.web> 
  6.     <connectionStrings> 
  7.       <add name="MyNwConnectionString" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword;"/> 
  8.     </connectionStrings> 
  9.     <appSettings> 
  10.       <add key="User" value="myUsername"/> 
  11.       <add key="Password" value="myPassword"/> 
  12.     </appSettings> 
  13. </configuration> 

 

  1. using System;  
  2. using System.Configuration;  
  3.  
  4. namespace WebConfigEncryptTest  
  5. {  
  6.     public partial class WebForm1 : System.Web.UI.Page  
  7.     {  
  8.         protected void Page_Load(object sender, EventArgs e)  
  9.         {  
  10.             string user = ConfigurationManager.AppSettings.Get("User");  
  11.             string password = ConfigurationManager.AppSettings.Get("Password");  
  12.             string connectionString = ConfigurationManager.ConnectionStrings["MyNwConnectionString"].ConnectionString;  
  13.         }  
  14.     }  

 

(一)加密文件可以使用的Provider

.NET为我们提供了一个工具aspnet_regiis.exe来对web.config文件中的敏感信息进行加密(app.config文件可以先改名为web.config,加密后再改回app.config)。你可以使用两个provider中的一个来进行加密:

  • System.Configuration.DPAPIProtectedConfigurationProvider:在System.Configuration.dll中,使用Windows DPAPI(Data Protection API)来进行加密,密钥存在Windows Local Security Authority(LSA)中。注意:当使用DPAPIProtectedConfigurationProvider时,加密文件所使用的帐号需要与运行web application的帐号相同,否则web application无法解密加密的内容。
  • System.Configuration.RSAProtectedConfigurationProvider:在System.Configuration.dll中,使用RSA算法来进行加密(RSA算法是非对称加密,参见《http://www.fengfly.com/plus/view-215487-1.html 》),公钥存放在config文件当中,只有加密的计算机有密钥。RSAProtectedConfigurationProvider通常是默认的缺省provider。



本文地址 : http://www.fengfly.com/plus/view-215494-1.html
标签: web.config App.config
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: