用c#做了程序,数据库用户及密码都明文保存在web.config中,程序正式使用后,需要经常修改,怎么能让程序员只改程序,发布,有不让他知道数据库的密码?

解决方案 »

  1.   

    应该无解吧
    程序员有你的代码
    即使你web.conf的密码以加密的方式存储程序员在代码段也能够知道你的密码。
      

  2.   

    将密码换成MD5加密之后的字符再保存到web.config中
      

  3.   

    大家的方法一个共性,当程序debug调试时,就能看到数据库连接串中的user id和password,如果认为很必要的话,你单独开发一个访问数据库的assembly file供大家使用好了,这样大家也不用操心数据库访问。
      

  4.   

    当然,如果数据库有机密的话,这个assembly file需要加密,以免被反编译,或许多虑了
      

  5.   

    版本控制
    加密连接字符串如md5,sha,des等方法
      

  6.   

    SQLSERVER采用集成安全人证的方式,可以不用在连接字符串中写明数据库密码。
      

  7.   

    加密连接,并且写好数据帮助类,让他们调用该帮助类,但不能开放SqlConnection对象或具有属性等SqlConnection对象的对象,否则还是可以通过SqlConnection对象的ConnectionString属性看到的。
      

  8.   

    Ingetrated Security =SSPI  代替 数据库的用户名和密码。
      

  9.   

    你在开玩笑吧?MD5加密不能解密,你到时候用的时候怎么读出来?根本不能用hash算法,只能用自己写的加密,要能解密的加密。
      

  10.   

    1.连接数据库是最底层的操作,可以单独封装一个conn.dll,里面就放一个属性sqlconnection对象,在dll里面给他赋值,
    2.然后可以给这个dll做好保密处理,也可以加壳之类,防止反编译。
    3.多层开发不就这样,程序员不需要知道conn.dll里的代码,他只需得到sqlconnection对象操作数据库的增删改其他操作。
      

  11.   

    sqlconnection里可能还能看到链接信息吧。那只有基本的用到sqlconnection的操作都封装起来了,不让程序员访问sqlconnection,可以考虑把操作操作数据库的方法做成灵活一点的,比如添加数据类似以下代码//tableName表名
    //fieldKey字段数组
    //fieldValue字段值数组
    bool insertTable(string tableName,string[] fieldKey,string [] fieldValue)
    修改删除类推,希望对你有点用。
      

  12.   

    建议客户用ini后缀名的文件加密后存储,这样外部人员是无无法看清这里面的真正的字符的,这个东西得写一个from来写入和读出,方便超级管理员来进行设置,写好后在是不无查看到的,也就是说没有进行系统设置的传用界面是无法知道这里面是什么意思的
      

  13.   

    web.config可以加密的啊,加密后别人就看不到密码了,当然,你不能给他在本地解密的权限才行。
    http://azhai.cnblogs.com/archive/2006/01/30/324346.html
      

  14.   

    des加密存储。加密的密钥保密,加密方法甚至可以用c++写。
      

  15.   

    写个webservies 程序员的sql语句通过webservices操作数据库
      

  16.   

    写个软件读取WEB。config里面的数据库密码  让它自动连接  最近做过1个类似这个东西  加密CONFIG的 和网站部署的
      

  17.   

    这个好说!
    config加密 .net有自带的。
    http://www.cnblogs.com/9who/archive/2008/07/28/1254526.html也可以DES加密 解密如果嫌麻烦 直接写在程序里。!
      

  18.   

    MSDN给的解决方法真不错!http://msdn.microsoft.com/zh-cn/library/89211k9b%28v=VS.80%29.aspx
      

  19.   

    做一个webservice接收用户用私钥发来的请求串比如“给我密码”,用用户公钥解密后,用用户公钥加密数据库密码返回,使用方用自己的私钥解密就得到数据库密码。发布程序时,同时发布一套用户非对称密钥就行了。