在开发应用的过程中会用到很多第三方的功能,比如大众点评的API,即时通讯环信,短信发送等等。
这些接口通常都需要我们去根据应用来申请使用权限即key和secret,通常这两样都是字符串。现在的问题是,这样的权限字符串如果存储在客户端(比如安卓客户端)是不是非常不安全?
即使客户端做过代码混淆,这样的常量字符串貌似还是会出现在反编译后的代码块中,对吗?
请问那要如何避免key和secret被截获?
1、把文件进行一定加密
2、通过远程从服务器上获取后再使用,可以登录的时候初始化获取。
避免key和secret被截获,明码肯定是避免不了,加密是解决问题的办法。
至于如何加密(公钥/私钥之类),用多少位加密,这就要看你的实现。简单的代码混淆肯定是不行的!
加密后再保存。或者把一部分功能放到服务器端去实现。
首先提供api的服务端要有一套安全的机制,比如说定时刷新token的机制。
在就是客户端储存密钥一定是不安全的,即使对称加密页游被破解的风险,所以安全级别高的密钥建议还是放在服务端。