Android应用本地离线激活认证方案—so文件授权认证

Posted _H_JY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android应用本地离线激活认证方案—so文件授权认证相关的知识,希望对你有一定的参考价值。

一.需求场景

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

二.设计分析

通过调用so文件完成整个激活认证过程,将认证过程放在C/C++代码中进行,增加程序被反编译破解的难度,提高程序代码隐蔽性。

管理者保管激活码生成工具,为用户生成APP激活码。

三.实现步骤

1.使用APP生成待激活二维码;

2.使用生成激活码APP(见目录:生成激活码工具)扫描待激活二维码,生成激活码;

                    

3.复制激活码,在APP中粘贴输入激活码,点击按钮进行激活验证,验证成功方可使用APP。

               

 源码路径:

该案例源码已上传至GitHub,地址:GitHub - g-HJY/ActivationCodeApp: 使用so库实现离线激活App机制。包含:生成待激活二维码APP、扫描待激活二维码生成激活验证码APP

好了,到此就介绍完毕了,本篇主要是为APP本地离线认证提供一种具备一定安全性的解决思路,感谢大家的阅读,拜拜。

结尾顺便分享下我在Github上的一个蓝牙开发开源作品:

Java语言版本地址:GitHub - g-HJY/HBluetooth: 封装了支持Android蓝牙(经典蓝牙或低功耗蓝牙)扫描,连接,以及通信的库。附带使用例子。
Kotlin语言版本地址:GitHub - g-HJY/Kotlin-HBluetooth: Kotlin语言版本:封装了支持Android蓝牙(经典蓝牙和低功耗蓝牙)扫描,连接,以及通信的库。附带使用例子。

相关csdn篇章:分享我的Android蓝牙开源作品—HBluetooth__H_JY的博客-CSDN博客

特别声明:

本开源案例仅以提供离线认证的设计思想和实现方法参考为目的,且激活码生成工具已公开使用,不承诺其安全性。若您在项目中使用该认证库,因被破解造成任何损失,开源库提供者概不负责。

意见和建议:

真实生产过程中建议还是通过联网+用户体系认证的方式来实现,即认证过程由服务端处理,可以更好地解决安全性问题。

以上是关于Android应用本地离线激活认证方案—so文件授权认证的主要内容,如果未能解决你的问题,请参考以下文章

Android应用本地离线激活认证方案—so文件授权认证

Android应用本地离线激活认证方案—so文件授权认证

前后端分离开发,六大方案全揭秘:HTTP API 认证授权术

Android 开发--CMakeList调用本地so文件

Android解耦式so库加载方案

HTML5 离线认证