安卓 信息加密 好像无论怎么加密 信息都可以被破解出来啊~
本帖最后由 janchin 于 2014-11-03 16:14:32 编辑
个人在这方面没什么经验,只是需要用到一些加密的。特别是通讯这方面。
1. 通过java的本身的加密工具,对数据进行加密,然后传输。那App被反编译之后。密钥之类的都一览无余。抓取密文之后,按照反编译后的代码逻辑自己写个解密过程就行了。。。
2. 通过JNI调用,so中的函数对数据进行加密。这个就有以下几种情况了:
(1)如果加解密都在so里面,那么native方法很容易被找到。找到native方法后,抓取密文信息,自己将so拿出来,调用解密函数就行了。
(2)如果解密在服务端。将抓取的密文发送服务端解密,然后再调用本地的(通信层的)解密方法一样可以看到明文。
这样,虽然请求没有破解,但是返回报文存在被破解的可能性。。。
想来想去 没有很好的解决方案啊~~求教。。。
------解决思路----------------------返回的报文类似。客户端在第一次给服务器发数据的时候,就临时生成一对公钥和私钥,并把公钥发送给服务端。服务端把返回的报文用请求中附带的公钥加密,客户端收到报文后再用临时生成的私钥解密。