yulihua49 发表于 2016-05-19 13:44

hw80520997 发表于 2016-05-19 10:05 static/image/common/back.gif
需求是这样的。客户端程序需要收集一些手机的本地信息然后加密传回服务器端。这个过程不希望被别人破译。一 ...
秘钥协商,DH算法。

cobras 发表于 2016-05-19 16:36

用RSA之类的非对称加密算法。为每次对话生成不同的随机密匙对,将公共密匙通过对话发给对方。密匙不保存,只在内存中。

cobras 发表于 2016-05-19 16:39

当然,这之前的以验证会话对方身份正确为前提。

fenghw8088 发表于 2016-05-20 11:10

我也有这个问题,目前是使用前再修其中几个字节, 如key='#', key='+',修改代码混杂在其他码流中。
没有特好的办法

回复 1# hw80520997


   

pingmm 发表于 2016-05-21 23:56

呵呵,做过类似的,只能说防君子不防小人,动态调试的话一切都是扯谈。

做法是对原始字符串做一次加密,程序中要用到的时候再解密出来,

比如"abcdef"加密后得到"!@#$%",然后exe中就只看到后面这个,明白了吧

wlmqgzm 发表于 2016-05-23 18:21

我觉得没有必要弄这么复杂, 直接zlib压缩就可以了, 压缩后就是一堆谁也看不懂的数据了, 还不放心, 那么取反一次, 现在是天书了,代码也简单, 还不容易出错,:D)

yulihua49 发表于 2016-05-25 16:26

本帖最后由 yulihua49 于 2016-05-25 16:32 编辑

告诉你用秘钥协商算法,即DH算法,无需保存任何字节串。

搜索一下 “密钥协商协议”。
http://blog.csdn.net/huangzhq/article/details/378703

selfrun 发表于 2016-05-25 23:10

客户端打包公钥.
对称密钥在客户端随机生成,用来加密数据.
用公钥加密对称密钥.
将密文和被公钥加密的密钥发送到服务器.

yulihua49 发表于 2016-05-26 13:21

本帖最后由 yulihua49 于 2016-05-26 14:38 编辑

cobras 发表于 2016-05-19 16:39 static/image/common/back.gif
当然,这之前的以验证会话对方身份正确为前提。
我们经常是在连接之后,身份认证之前需要先行协商密钥,然后发送加密信息进行认证。
你这个流程不行。

正确的做法:
连接成功后
客户端发一个协商包,(天王盖地虎)
服务器回一个协商包。(宝塔镇河妖,黑话对了才有后边的)
双方据此生成相同的密钥。
然后
客观端发送认证包(加密的)
服务器回认证成功包。

以后才可能有公钥私钥可用。
页: 1 [2]
查看完整版本: 如何在程序中隐藏硬编码的字符串?