Android如何保护API

大众点评和美团两家采取了不同的方式来保护自己的API。
大众点评的话通过对返回的数据进行加密来做到保护自己的API,项目中有个DPObject,然后还有一个dpobj2json的so库,我的猜想也就是解密相关的方法放在这个so库里面,具体的解密操作由这个so库来实现。虽然大众点评没做混淆,不过想看懂具体的逻辑还是比较复杂的。
美团的话是接口调用的时候会带上几个用于校验的参数

__skck:e6c6v5576e6e6b3g95a20f797130689f
__skts:1449293593506
__skua:f75fa27d8494cfe1a1747a0299d893c8
__skno:5aa34e66-36db-4a92-b45c-581410ad4627
__skcy:5Ava2Mwe18Cqz9KsIJStui7LO8w=

这里的skno是调用UUID.randomUUID().toString(),skts则是System.currentTimeMillis(),skck的话则是一个签名内容,skua则是User-Agent,关键的是skcy这个参数,skcy是要根据所有的参数然后加上app自身的签名然后进行计算得出的,这个操作也是在so库中进行的,关于需要app自身的签名是我个人的猜想,因为我二次打包后,API调用之后就是403的错误,所以猜想加密这一块跟签名有关。
简单的说也就是加密这一块在so库进行并且需要app的签名信息。

2015-12-05 15:5554