RT。
我指的的是 WinForm 之类的程序。通常,只要反编译一下,里面的连接字符串一清二楚。
那么,你是如何保护脆弱的“她”?

解决方案 »

  1.   

    加密处理,winForm里也一样:    <add key="connString" value="AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAATEwDkMTK4EuFyEHlXknTbgQAAAACAAAAAAADZgAAqAAAABAAAABGk4TAD57pA7K9Q8keUVoeAAAAAASAAACgAAAAEAAAAFfejlP98F1+148LHRGMYg84AAAAAWX1PTJukSTLYprbIBySFkPex4c/z3xMuldQPA49Ac+xFUGL6J9F110Ck8G0zwNkdBoj3uvz53IUAAAAEh6REmyJy4aS0HdXJM0mcS6U6b4=">
        </add>
      

  2.   

    把数据库连接字符串,加密一下,加密后,可以放到config文件中,使用时,代码中把它解密..net的东西直接编译出来,是不安全的,如果为了更安全,可以找个混淆或加壳工具,加一个壳,这样别人就不容易反编译看到你的源码.----------
    三易通软件(服装进销存,服装进销存软件,服装进销存管理软件,服装进销存管理系统,服装店管理软件,服装店管理系统,服装销售管理软件,服装销售管理系统,服装零售管理软件,服装零售管理系统,服装店软件,服装店收银软件):http://www.3etsoft.cn
      

  3.   

    可以假设程序在这台机器上,使用Machine API
      

  4.   


    <!-- 连接字符串是否加密 -->
    <add key="ConStringEncrypt" value="false"/>
    <!-- 连接字符串,(可以扩展支持不同数据库)如果是加密方式,上面一项要设置为true,如果是明文server=127.0.0.1;database=codematic;uid=sa;pwd=,上面设置为false -->
    <add key="ConnectionString" value="server=127.0.0.1;database=platform;uid=root;pwd=root"/>
    <!--8618B53C32BF8E0B6CD3BDFF59B9F24BE1C6D586A5915C8B6DC69A09ABB2DF60A4026BDE8E76B6FDE2BFCEA3FA8E06CB-->
      

  5.   

    推荐楼主一个工具: Process Explorer,只要你解密出来,内存里面就可以找到这个字符串。
      

  6.   

    asp.net 2.0中加密web.config /App.config
    WEB篇
        网上已经有很多文章提到:
        ASP.NET 2.0加密Web.config 配置文件 
        Keeping secrets in ASP.NET 2.0.
        就是利用aspnet_regiis新增加的加密功能,典型格式如下:
        aspnet_regiis -pe "connectionStrings" -app "/MyWeb".确实是一个很爽的功能,不用为读取加密的配置文件做任何其他工作.完全按照原来的方式进行处理就OK了.
    Windows篇
        Web的配置文件需要加密,难道Windows的配置文件就可以忽视了吗?aspnet_regiis可以加密Web.config,能不能用来加密App.config呢?答案是肯定的.不过似乎要稍微做点手脚:)首先,我们来看下aspnet_regiis的"-pef"参数,这个参数是指定配置文件的物理路径,正因为有了他,我们才可以使用"哩猫换太子的伎俩"来骗过aspnet_regiis.exe,让他为Windows的配置文件加密.先将App.config改名为Web.config,然后使用如下命令:
        aspnet_regiis -pef "connectionStrings" "D:\Project\WinProject"
        "D:\Project\WinProject"这个路径就是存放"乔装"成Web.config的App.config,然后aspnet_regiis会提示加密成功,然后,我们把名字改回App.config,然后在Windows程序中使用,同样,可以按照原来的方式读取加密后的文件.
        基于这一点,又想说,为什么MS不直接提供个配置加密/加密工具算了.何必放到aspnet_regiis.exe里面呢?搞得只能加密Web配置一样.
    (以上加密,都是采用漠认的RsaProtectedConfigurationProvider)最后,觉得不太爽的就是:目前似乎MS只提供了命令行的方式,用起来不太方便.不过似乎Enterprise Library似乎提供了一个图形化的加/解密界面.不知道是不是和aspnet_regiis是同样的方式.  这是在 http://blog.csdn.net/dotnet90/archive/2007/11/13/1881804.aspx 这个地方看到的,这种加密方式好像是由 .net 自己来处理的,应该也就不存在有密钥了。
      

  7.   

    连接字符串最好使用ase或者des加密,加密的方法如果不想让别人看到,可以考虑使用c/c++写。
      

  8.   

    密钥放不可F12的那个CS里
    SqlDataProvider.cs
      

  9.   

    连接字符串放在单独的DLL里,然后混淆 或者加密
      

  10.   

    连接串放到dll里面???怎么加密都是徒劳的。
      

  11.   

    那依照你的意思,DLL里的东西没有安全的,无论怎么加密
      

  12.   

    你只要使用程序解密了,最终的连接字符串必然会解密到内存中
    string connStr = Decrypt(cryptedStr);
    最终connStr 还是存在于内存
    至于是怎么Decrypt的,就不需要知道了。
      

  13.   

    如果那样,dll里放的是一串md5后的数据,也可以解了
      

  14.   

    就用md5加密呗。就算他想破md5也是很麻烦的。
      

  15.   

    可以写入 web.config文件 进行 加密处理的
      

  16.   

    加密连接字符串软件先用dotfuscator混淆
    再用dotNET_Reactor加壳
    目前这个dotNET_Reactor壳很少有人脱的了的
      

  17.   

    无论怎么加密最终还是要在内存中生成连接字符串,所谓的加密只是不在配置文件里出现明文而已。
    最好的办法就是不要让客户端连接数据库,这才是真正的C/S结构。现在的大部分C/S程序只是多个单机版程序而已。
      

  18.   

    http://topic.csdn.net/t/20051120/20/4406179.html
      

  19.   

    http://www.xmsc.com.cn/InfoView/Article_179890.html这个讲的不错。
      

  20.   

    .net的winform再怎么折腾都不安全。
      

  21.   

    一、 
    在数据库里建立登录名
    登录程序的时候,通过Windows 验证。
    二、
    建立Web站点。
    通过登录Web 站点返回链接数据库的帐号密码。三、
    用意念控制
      

  22.   

    Winfrom 要发布给别人用的吧? 那可能的做个S端  通过socket来传递数据啊  不因该在Winform里面直接操作数据库吧?