你是如何保护数据库连接字符串? RT。我指的的是 WinForm 之类的程序。通常,只要反编译一下,里面的连接字符串一清二楚。那么,你是如何保护脆弱的“她”? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加密处理,winForm里也一样: <add key="connString" value="AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAATEwDkMTK4EuFyEHlXknTbgQAAAACAAAAAAADZgAAqAAAABAAAABGk4TAD57pA7K9Q8keUVoeAAAAAASAAACgAAAAEAAAAFfejlP98F1+148LHRGMYg84AAAAAWX1PTJukSTLYprbIBySFkPex4c/z3xMuldQPA49Ac+xFUGL6J9F110Ck8G0zwNkdBoj3uvz53IUAAAAEh6REmyJy4aS0HdXJM0mcS6U6b4="> </add> 把数据库连接字符串,加密一下,加密后,可以放到config文件中,使用时,代码中把它解密..net的东西直接编译出来,是不安全的,如果为了更安全,可以找个混淆或加壳工具,加一个壳,这样别人就不容易反编译看到你的源码.----------三易通软件(服装进销存,服装进销存软件,服装进销存管理软件,服装进销存管理系统,服装店管理软件,服装店管理系统,服装销售管理软件,服装销售管理系统,服装零售管理软件,服装零售管理系统,服装店软件,服装店收银软件):http://www.3etsoft.cn 可以假设程序在这台机器上,使用Machine API <!-- 连接字符串是否加密 --> <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--> 推荐楼主一个工具: Process Explorer,只要你解密出来,内存里面就可以找到这个字符串。 asp.net 2.0中加密web.config /App.configWEB篇 网上已经有很多文章提到: 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 自己来处理的,应该也就不存在有密钥了。 连接字符串最好使用ase或者des加密,加密的方法如果不想让别人看到,可以考虑使用c/c++写。 密钥放不可F12的那个CS里SqlDataProvider.cs 连接字符串放在单独的DLL里,然后混淆 或者加密 连接串放到dll里面???怎么加密都是徒劳的。 那依照你的意思,DLL里的东西没有安全的,无论怎么加密 你只要使用程序解密了,最终的连接字符串必然会解密到内存中string connStr = Decrypt(cryptedStr);最终connStr 还是存在于内存至于是怎么Decrypt的,就不需要知道了。 如果那样,dll里放的是一串md5后的数据,也可以解了 就用md5加密呗。就算他想破md5也是很麻烦的。 可以写入 web.config文件 进行 加密处理的 加密连接字符串软件先用dotfuscator混淆再用dotNET_Reactor加壳目前这个dotNET_Reactor壳很少有人脱的了的 无论怎么加密最终还是要在内存中生成连接字符串,所谓的加密只是不在配置文件里出现明文而已。最好的办法就是不要让客户端连接数据库,这才是真正的C/S结构。现在的大部分C/S程序只是多个单机版程序而已。 http://topic.csdn.net/t/20051120/20/4406179.html http://www.xmsc.com.cn/InfoView/Article_179890.html这个讲的不错。 .net的winform再怎么折腾都不安全。 一、 在数据库里建立登录名登录程序的时候,通过Windows 验证。二、建立Web站点。通过登录Web 站点返回链接数据库的帐号密码。三、用意念控制 Winfrom 要发布给别人用的吧? 那可能的做个S端 通过socket来传递数据啊 不因该在Winform里面直接操作数据库吧? 反射创建属性 修改属性类型 程序运行一段时间就出现问题,奇怪了。 检测代码执行的方法有哪些? 先谢谢各位好心大虾了:没有table的情况下,如何让控件居中啊?在线等。。。。 一个很奇怪的问题 C# UDP编程中使用Connect的问题 关于Split方法的小问题——如何将输入的坐标转换为double型的数 在c#+mapx中,如何画多个点和线? C#中访问窗体控件 datatable 某行删除后回复 excel导入sql WINCE开发的程序,,怎么改变模拟器
</add>
三易通软件(服装进销存,服装进销存软件,服装进销存管理软件,服装进销存管理系统,服装店管理软件,服装店管理系统,服装销售管理软件,服装销售管理系统,服装零售管理软件,服装零售管理系统,服装店软件,服装店收银软件):http://www.3etsoft.cn
<!-- 连接字符串是否加密 -->
<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-->
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 自己来处理的,应该也就不存在有密钥了。
SqlDataProvider.cs
string connStr = Decrypt(cryptedStr);
最终connStr 还是存在于内存
至于是怎么Decrypt的,就不需要知道了。
再用dotNET_Reactor加壳
目前这个dotNET_Reactor壳很少有人脱的了的
最好的办法就是不要让客户端连接数据库,这才是真正的C/S结构。现在的大部分C/S程序只是多个单机版程序而已。
在数据库里建立登录名
登录程序的时候,通过Windows 验证。
二、
建立Web站点。
通过登录Web 站点返回链接数据库的帐号密码。三、
用意念控制