当前位置: 代码迷 >> Android >> 安卓 信息加密 好像无论如何加密 信息都可以被破解出来啊
  详细解决方案

安卓 信息加密 好像无论如何加密 信息都可以被破解出来啊

热度:99   发布时间:2016-04-28 03:46:56.0
安卓 信息加密 好像无论怎么加密 信息都可以被破解出来啊~
本帖最后由 janchin 于 2014-11-03 16:14:32 编辑
个人在这方面没什么经验,只是需要用到一些加密的。特别是通讯这方面。

1. 通过java的本身的加密工具,对数据进行加密,然后传输。那App被反编译之后。密钥之类的都一览无余。抓取密文之后,按照反编译后的代码逻辑自己写个解密过程就行了。。。

2. 通过JNI调用,so中的函数对数据进行加密。这个就有以下几种情况了:
    (1)如果加解密都在so里面,那么native方法很容易被找到。找到native方法后,抓取密文信息,自己将so拿出来,调用解密函数就行了。
     (2)如果解密在服务端。将抓取的密文发送服务端解密,然后再调用本地的(通信层的)解密方法一样可以看到明文。
              这样,虽然请求没有破解,但是返回报文存在被破解的可能性。。。


想来想去 没有很好的解决方案啊~~求教。。。
------解决思路----------------------
引用:
Quote: 引用:

个人在这方面没什么经验,只是需要用到一些加密的。特别是通讯这方面。

1. 通过java的本身的加密工具,对数据进行加密,然后传输。那App被反编译之后。密钥之类的都一览无余。抓取密文之后,按照反编译后的代码逻辑自己写个解密过程就行了。。。

2. 通过JNI调用,so中的函数对数据进行加密。这个就有以下几种情况了:
    (1)如果加解密都在so里面,那么native方法很容易被找到。找到native方法后,抓取密文信息,自己将so拿出来,调用解密函数就行了。
     (2)如果解密在服务端。将抓取的密文发送服务端解密,然后再调用本地的(通信层的)解密方法一样可以看到明文。
              这样,虽然请求没有破解,但是返回报文存在被破解的可能性。。。


想来想去 没有很好的解决方案啊~~求教。。。

那返回报文呢?你服务器加密之后肯定是由客户端解密,只要客户端解密,就可以被破解出来。无论是对称还是不对称加密。

返回的报文类似。客户端在第一次给服务器发数据的时候,就临时生成一对公钥和私钥,并把公钥发送给服务端。服务端把返回的报文用请求中附带的公钥加密,客户端收到报文后再用临时生成的私钥解密。
  相关解决方案