我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 操作系统 > 服务器 > WEB相关 > 加密Web.config中的信息
热门文章排行
热门文章排行 启动与关闭服务器(12-28)
服务器应用:用serv-u建立FTP一(11-16)
破解局域网内不能互访的六大经典问题(12-28)
Windows中IIS内FTP服务器高级配置(11-16)
怎样设置域名的DNS服务器(11-16)
精采文章排行
精采文章排行 在Windows Server 2003中为Web站点(11-16)
IP基础--DNS协定(11-16)
怎样设置域名的DNS服务器(11-16)
DNS—bind安装与配置的关键技术揭秘(11-16)
Exchange Server 服务器通讯端口(11-16)
技术专题推荐
网管论坛交流
 

加密Web.config中的信息 

作者:   来源:Linux 宝库   点击:   日期:2006-11-22


-->


  我们都知道web.config可以保存连接字符串,我们在程序中也都是这么做的,web.config是XML,所以它有清晰的结构,是我们很容易可以读懂它,但是这也出现一个问题,我们数据库完全暴露给浏览该文件的人,这是我们所不希望的。我们可以使用一个简单有效的加密算法来加密这段连接字符,使直接浏览该文件的人不能清楚地看到这些信息。
  
  我们一般以下面的形式保存连接字符串:
     <appSettings>
       <add key="ConnectionString" value="server=localhost;database=test;pwd=sa;uid=sa;" />
     </appSettings>
  
  为了我们自己可以看得明白这些加密的字符我们需要一个额外的程序专门生成这些加密数据(这个额外的程序你可以写得很复杂但是为了说明问题,我们使用简单的base64编码数据,这其实不是加密数据,但是原理是一样的)。我们建立一个WinForm工程,专门用来生成明文到密文的(base64)转换,如果使用其它的加密算法可以替换这个加密过程。转换按钮里面的代码如下:
  
  private void button1_Click(object sender, System.EventArgs e) {
    byte[] data = System.Text.ASCIIEncoding.ASCII.GetBytes(this.textBox1.Text);
    string str = Convert.ToBase64String(data);
    this.textBox2.Text = str;
   }
  
  其中textBox2里面就是变码以后的字符。我们可以将我们web.config里面的连接字符("server=localhost;database=test;pwd=sa;uid=sa;")取出来放在这个程序里面执行生成一个新的字符串(c2VydmVyPWxvY2FsaG9zdDtkYXRhYmFzZT10ZXN0O3B3ZD1zYTt1aWQ9c2E7)。
  
  之后我们用这个字符替换未编码的字符串。如下所示:
    <appSettings>
      <add key="ConnectionString"  value="c2VydmVyPWxvY2FsaG9zdDtkYXRhYmFzZT10ZXN0O3B3ZD1zYTt1aWQ9c2E7" />
    </appSettings>
  
  哈哈!看不见了吧!但是我们的程序也不认识了:-( 没关系我们自己知道加密算法所以我们的程序可以看懂,最后就是在程序中如何使用了,我们的程序需要理解这个字符串的意义,我们在数据访问层里面添加如下的工具方法
  
  private string GetConnectionString(){
    string strconn = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
    byte[] data = Convert.FromBase64String(strconn);
    string strRealConn = System.Text.ASCIIEncoding.ASCII.GetString(data);
    return strRealConn;
   }
  
  这样就可以得到真实的连接字符串了。
  
  上文一个简单的加密(伪加密,其实本文实现的是一个编码而非加密)的方法,也许可以骗过一些人的眼睛,但是对于了解内幕的人还是起步到什么保护的作用,所以你可以扩展这个算法,使用对称或者非对称的加密算法替换该案例里面的编码算法,这样基本上就万无一失了。







文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·Win2003下Exchange2003安装全图解二 ·处理外部邮件的Exchangeserver设置
·准备好升级你的Exchange2003 ·Exchange2000安装的系统需求
·安装秘诀:Exchange2000容量与拓朴计算器 ·安装秘诀:将现有的Exchange2000群集节点

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。