一.需求场景
在实际的开发工作过程中,我们经常会遇到过这样一个需求,就是客户要求我们的APP功能使用之前必须具备一定的密钥认证机制。现在是互联网时代,一般我们常规的做法都是建立起自己系统平台的用户体系,客户端通过用户名和密码去登录,以实现该需求。但是如果我们的APP目前不需要联网,没有自己的用户体系呢?换言之我们的APP需要进行离线认证使用,既然是离线认证,那意味着我们的认证过程必须存在于前端自己的项目之中,那就存在被破解的风险。众所周知,现在的反编译工具很多很强大,反编译一个未加固的APP仅仅只是一瞬间的事(实际上即使是加固了也可以被破解),道高一尺魔高一丈,那么我们只能是增加APP被反编译破解的难度,本篇提供一种方案供参考,核心就是将认证过程放在so文件中实现,以提高安全性。
二.设计分析
通过调用so文件完成整个激活认证过程,将认证过程放在C/C++代码中进行,增加程序被反编译破解的难度,提高程序代码隐蔽性。
管理者保管激活码生成工具,为用户生成APP激活码。
三.实现步骤
1.使用APP生成待激活二维码;
2.使用生成激活码APP(见目录:生成激活码工具)扫描待激活二维码,生成激活码;