有写了一个C/S结构的程序,客户端直接连数据库,使用ADOConnection连接数据库,为了密码的安全,我把ConnectionString加密了,在程序中直接保存的是加密后的连接字符串,到用的时候再解密,现在有一个问题,我用WinHex读取程序的内存,那么我的连接字符串就会显示在里面,加密也没用,因为程序不管怎么加密,在内存中总是要解开的,那么怎么才能是程序有更好的安全性?使数据库密码不会被客户端用户知道?

解决方案 »

  1.   

    你可以把连接字符串也加密,或者用dll
      

  2.   

    To: mezw(灵珠子)
        我已经把连接字符串加密了,但是在内存中还是会解密的
    To:xjjrocker(了无痕)
        现在改成三层不太现实了
      

  3.   

    楼主说的WinHex是个什么东西?哪儿有得下?
      

  4.   

    : Rail100的方法也不妥。
    这样用户知道了数据库密码,就可以随便用个东西连接到数据库并任意修改里面的东西。
      

  5.   

    C/S结构中,这是没有办法的,因为ConnectionString必须要求连接者提代密码,无论你怎样加密,最终在提交给服务器的时候,密码总是明码。
    解决办法楼上已说过了,我帮你归纳如下:
    1、用三层结构
    2、让用户自己输入口令
    3、对这个登录帐号进行限制,不要给他对表的操作权限,只给他对存储过程的权限