在程序中,编写了一个数据库访问的类,里面有个私有字段存储着远程数据库的连接字符串。
这样的做法安全吗?如果程序被反汇编的话,这个字符串是不是会完全暴露?
本人是这方面的菜鸟,请高手指导一下。用什么方式存储连接字符串最安全?
谢谢!

解决方案 »

  1.   

    会暴露的。
    加壳。用.net rector。无法脱壳,暂时没见到有效脱壳工具。代码很安全。
      

  2.   

    你说的加密,是不是用3DES这种算法进行加密呢?如果是的话,,要提供一个公钥(还是私钥忘了)。那样的话,还是会以字段或或者属性的形式存在,这样就不会被人知道吗?
      

  3.   

    把数据连接信息放到服务器上,然后通过WEBSERVICE去获取数据连接信息,客户端再加上加密锁,WEBSERVICE返回经过3DES这种加密的结果,客户端根据加密锁中存储的私钥去解密
      

  4.   

    写APP里面,然后使用命令进行加密! -pdf section webApplicationDirectory 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。  
    -pef section webApplicationDirectory 对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。     -pdf 和-pef 参数是对指定的物理目录里的Web.config文件进行加密,我们可以先将App.config文件改名为Web.config,通过这两个参数便可以“骗”过系统,让它将指定的配置节进行加密,我们只需要将加密后的文件名改回App.config即可,我们来实验一下:     第一步:先将目录下的App.config改名为Web.config。     第二步:打开SDK命令提示,输入命令:aspnet_regiis -pef "配置节" "目录",     例如:     输入命令:aspnet_regiis -pef "connectionStrings" "E:\开发目录",     由此可见,我们已经完成了任务,现在只需要将Web.config文件名改回App.config即可,在应用程序项目中无需对该文件进行解密操作,.NET框架会自动替我们完成,如果想解密该文件也很简单,在SDK命令提示里输入aspnet_regiis -pdf "配置节" "目录"即可。