注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

山林客

简单不一定幸福,但幸福其实可以很简单。

 
 
 

日志

 
 
关于我

2004年毕业于中山大学,毕业后专注于网站开发和网络工程技术。先后取得SCWCD、CCNP认证,对Asp/Java有丰富的开发经验,对网络工程也有较深的研究。真诚欢迎大家多多指教、多多指点、多多指正,共同分享IT道路和人生道路上的喜怒哀乐。

网易考拉推荐

ASP.NET应用程序中加密Web.config  

2009-01-17 22:48:00|  分类: .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ASP.NET应用程序中加密Web.config - 瑞志.net - 山林客

上面是我的IIS配置,我在“默认网站”下新增了一个虚拟目录作为应用程序的根,路径在“F:\aspnet\chap01”,该目录下有一个Web.config配置文件。现在我要加密这个配置文件中的<connectionStrings>节点,让我的数据库配置信息不容易直接让人看到。

<connectionStrings>
    <add name="myConnString" connectionString="server=A4D5DF939A4F4C2\SQLSERVER2;database=MYDATABASE;uid=sa;pwd=sasa"/>
</connectionStrings>

可以看到,这里我们直接将数据库的用户名和密码显示,如果我们直接将这个程序发布,那么别有用心的人就可以窥探到我们的数据库。

我们执行下面的命令

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis  -pe "connectionStrings" -app "/chap01" -prov "RsaProtectedConfigurationProvider"

其中-pe表示我们要加密,-app后面指定了我们所要用到的应用程序

ASP.NET应用程序中加密Web.config - 瑞志.net - 山林客

 

加密后的<connectionStrings>节点

  <connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider">
    <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
      xmlns="http://www.w3.org/2001/04/xmlenc#">
      <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
          <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
            <KeyName>Rsa Key</KeyName>
          </KeyInfo>
          <CipherData>
            <CipherValue>djYj3i988FG5ED6wu04F75wthI8dwpVKholfpoiwc+L8JTw4cz/Y/76CdUqrYBqNQstTDkJsU8spKdiEKONNP+fslcTPAWM/YTkXLwKvmn5qywmUep02XfulaV+VWwJwfrH6arn/ElYTJ++jABO5P0DRnto6bPTGQj4XS9+bvoE=</CipherValue>
          </CipherData>
        </EncryptedKey>
      </KeyInfo>
      <CipherData>
        <CipherValue>7IhYh2NqR4xgLBvzEMNs8ZfBnpWOM8GoGKxCS8IabFA4uZj84gT0Z2MjBZGsZjKL7vpT49XvXhtKDlpJ/DOd6ArdtV+PJJRyhq2QRHb3Ba5XovT1+L1RfhDjy4tRgPzlZT6caNUPDiV4ej8NXSqS/f4FBBh8s8Htc76kppJkAB/F2mjauohipSnSnfCsJ8DcLqLkKBcOhq7EY9L7cKbvSNf3C2MHxguEywckuy7V8h4=</CipherValue>
      </CipherData>
    </EncryptedData>
  </connectionStrings>

Web应用程序可以自动执行解密,所以我们在调用的时候并不用担心解密的问题,例如我们要查看数据库连接参数,可以直接使用:

    public string GetConnectString()
    {
        string GetConnectString = ConfigurationManager.ConnectionStrings["myConnString"].ConnectionString;
        return GetConnectString;
    }

 要解密Web.config中的加密字符串回明文显示,只需使用:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis  -pd "connectionStri
ngs" -app "/chap01"

  评论这张
 
阅读(900)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018