从我的角度上看,应该使用中间代理,这样的话效率要高很多,也安全很多。比如我实现的VC连接SQL2000,就是写一个中间件,客户端没有任何访问数据库的代码,一切交给代理,代理可以和数据库服务器运行在一台机器上,客户端和代理的通讯可以走SOCKET,也可以走DCOM,并且可以按照自己的意愿加密合压缩传送,这样效率很高。如果仅仅是不让人静态分析你的文件,那很容易,写一个加密算法,将你的文本资料加密,然后当作资源放到你的EXE中,编译,运行时解密,但如果别人用动态分析,截获你的连接包,那里边都是明文,等于没有加密,如果用中间件别人就拿你没有办法来!例如:
1、客户端产生一个随机数,用时间戳加密,传给服务端,服务端在用同样的方法产生另一个随机数,传给客户端,然后,客户端用这两个随机数按照一定算法加密你的重要信息,传给服务端,因为任何时候密钥只有一半在网上传送,所以是相当地安全的,这种情况下,即使你知道我用的是什么算法加密,也没有办法解密!因为每次握手产生的密钥都不同。2,更简单的方法是用EXE压缩软件把你的EXE压缩一下,然后用UE把EXE地文件头改一下这样,别人就不能解压了,而且里边的信息也无法直接被看到了!3……方法太多了!不好意思占篇幅了!
1、客户端产生一个随机数,用时间戳加密,传给服务端,服务端在用同样的方法产生另一个随机数,传给客户端,然后,客户端用这两个随机数按照一定算法加密你的重要信息,传给服务端,因为任何时候密钥只有一半在网上传送,所以是相当地安全的,这种情况下,即使你知道我用的是什么算法加密,也没有办法解密!因为每次握手产生的密钥都不同。2,更简单的方法是用EXE压缩软件把你的EXE压缩一下,然后用UE把EXE地文件头改一下这样,别人就不能解压了,而且里边的信息也无法直接被看到了!3……方法太多了!不好意思占篇幅了!
解决方案 »
- 如何将windows自带的计算器导入vc中,获取其中的自愿
- 编译时出现Debug Assertion Failed如何解决
- 关于regsvr32注册组件时报"找不到指定的模块"错误.
- 请教关于鼠标拖拽过程中,拖拽图标的控制问题~~~~
- H323调用别的类库(PWLib),编译通过,但Link2001错误,默认参数值无法认识
- 如何画出长轴不是水平的椭圆
- 请高手帮帮助,怎么实现web动态部署,就像3721那样
- 用NMAKE如何编译出Release版本的程序?
- 如何得知用户是否按下了F2或F3键?
- 有关edit box的刷新
- 为什么这样就不行?(我也不知道这算什么问题)
- 关于KBDLLHOOKSTRUCT的问题,愁死我了
这样生成的字符串是UNICODE的!
用的时候用WideCharToMultiByte()处理一下!
您的采用中间件的思路非常好,但是基于某些方面的原因可能还不能做到,但是还是感谢您的这提示。另外,如果是静态的话,那很容易解决问题,其实我的程序也是加密过的。
目前,我的程序发布出去后,我发现有点人就是利用防火墙等得到IP和PORT,再利用SQL SERVER的黑客端口监视工具得到发出的验证包来获取密码和帐号。
您的第一种方法叙述了一个很好的加密思路,但是这个的实现我还是不很了解,是不是还需要一个中见件做转发?