编码web.config中的信息

原创 2004年05月01日 21:22:00

       我们都知道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;
  }
这样就可以得到真实的连接字符串了。
       上文一个简单的加密(伪加密,其实本文实现的是一个编码而非加密)的方法,也许可以骗过一些人的眼睛,但是对于了解内幕的人还是起步到什么保护的作用,所以你可以扩展这个算法,使用对称或者非对称的加密算法替换该案例里面的编码算法,这样基本上就万无一失了。要使用对成加密算法加密数据请参考http://www.csdn.net/Develop/read_article.asp?id=23386里面介绍了一些方法,用非对成加密请参考其他文章。

comanes 说得对,所以我马上改了。谢谢!

Web.config编码设置(中文)

 globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312"/>这样设置,会省了不少事...
  • gxj022
  • gxj022
  • 2009年07月13日 17:52
  • 1577

(转)编码web.config中的信息

我们都知道web.config可以保存连接字符串,我们在程序中也都是这么做的,web.config是XML,所以它有清晰的结构,是我们很容易可以读懂它,但是这也出现一个问题,我们数据库完全暴露给浏览该...
  • mdot
  • mdot
  • 2004年08月11日 22:34
  • 663

C#代码获取web.config中的配置信息

1.在web.Config的节点下面添加 节点 2.获取appSettings节点下面的子节点的信息        public...
  • u011176794
  • u011176794
  • 2016年09月06日 17:33
  • 287

从Web.config文件中读取数据库连接的字符串

(1)在Web.config文件中配置与数据库连接的字符串 对于应用程序而言,可能需要在多个页面的程序代码中使用数据连接字符串来连接数据库。当数据库连接字符串发生改变时(如应用程序被转移到其他计...
  • zc707212993
  • zc707212993
  • 2015年06月15日 16:40
  • 2071

[Web.config]里的一些常用设置

1.  显示最真实的错误信息,这样自定义错误信息就不会起作用.      2. 自定义错误页面                          ...
  • csuxuting
  • csuxuting
  • 2015年09月26日 17:54
  • 303

asp.net网站错误: 应用程序中的服务器错误 分析器错误信息: 给定编码中有无效的字符。

错误信息: “/”应用程序中的服务器错误。     --------------------------------------------------------------------------...
  • holyrong
  • holyrong
  • 2008年12月04日 15:44
  • 2394

在JS中获得webConfig的配置文件信息

webConfig中的文件信息          在JS中获取:                var CoRuType = '';...
  • u010078133
  • u010078133
  • 2013年08月27日 12:37
  • 5319

程序后台获取web.config中connectionStrings 的值方法

程序后台获取web.config中connectionStrings 的值的方法 web.config中使用了数据库连接字符串的配置,...
  • qinghecool
  • qinghecool
  • 2010年12月30日 17:00
  • 9621

编码web.config

 我们都知道web.config可以保存连接字符串,我们在程序中也都是这么做的,web.config是XML,所以它有清晰的结构,是我们很容易可以读懂它,但是这也出现一个问题,我们数据库完全暴露给浏览...
  • zhanglei5415
  • zhanglei5415
  • 2007年03月27日 16:13
  • 687

web.config中AppSettings集合的设置和使用

  一、在Web.config文件中配置appSettings集合    注意: 除了手动编辑此文件以外,您还可以使用    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio...
  • wygyhm
  • wygyhm
  • 2008年03月10日 11:31
  • 911
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编码web.config中的信息
举报原因:
原因补充:

(最多只允许输入30个字)