Android sdk加固使用详细说明主要介绍Android版本的密钥保护SDK如何使用,阅读者需要一定的Android的开发经验,否则可能存在一定的疑问

拷贝.so文件

在Android Stuido中打开项目,将解压文件夹下armeabi-v7a 和x86 中的.so 文件到项目jniLibs对应的文件夹中,若没有jniLibs文件请自行创建,如下图

拷贝.aar文件

将解压包中的KiwiWBSDK.aar文件到项目的libs文件中,如下图:

配置build.gradle文件

在Android Studio中打开build.gradle文件,在android节点下的defaultConfig中 配置 ndk引用armeabi-v7a 和 x86文件的路径,在repositories中配置libs;以及在dependencies节点下配置 .aar 文件的引用,配置代码如下图: 配置代码如下

配置截图如下:

导入SDK包

在项目中添加下面的代码,导入密钥白盒SDK包

import com.kiwisec.whitebox.KiwiWBSDK;

调用加解密函数

(1)函数描述:

调用SDK提供的加密、解密算法,无需提供密钥key信息,无需担心密钥泄露问题。

(2)加密函数:

public static byte[] encrypt(int keyType, String input)

public static byte[] encrypt(int keyType, byte[] input)

(3)解密函数:

public static byte[] decrypt(int keyType, byte[] input)

(4)参数说明

input:待加密数据,String或byte数据类型

keyType:由算法类型和算法模式经过或运用所得,不支持算命模式则为算法类型

(5)支持算法类型

AES、BLOWFISH、CAMELLIA、CAST128、CAST256、DES、DESX、GOST、MISTY1、RC4、RC5、SAFERK64、SEED、SKIPJACK、TDES、TWOFISH、XTEA、XXTEA、SM4、BASE64

(6) 支持算法模式

ECB、CBC、CFB、OFB、CTR,其中SM4暂仅支持ECB和CBC模式,RC4、RC5为序列算法和BASE64不支持算法模式

(7) 返回数据

加密或解密后的数据

(8) 代码实例

AES算法使用代码如下:

KiwiWBSDK.encrypt(KiwiWBSDK.CRYPT_AES, input)//默认为ECB模式

KiwiWBSDK.encrypt(KiwiWBSDK.CRYPT_AES|KiwiWBSDK.CRYPT_CBC, input)

KiwiWBSDK.encrypt(KiwiWBSDK.CRYPT_AES|KiwiWBSDK.CRYPT_CFB, input)

KiwiWBSDK.encrypt(KiwiWBSDK.CRYPT_AES|KiwiWBSDK.CRYPT_OFB, input)

KiwiWBSDK.encrypt(KiwiWBSDK.CRYPT_AES|KiwiWBSDK.CRYPT_CTR, input)

(9)白盒密钥偏移量IV说明

在CBC,OFB,CFB,CTR,PCPB加密模式下,必须提供偏移量IV,白盒密钥的偏移IV会根据Key(密钥)与加密的BlockSize(块大小)生成。

(10)生成原理

第一种情况:Key长度大于BlockSize【目前自动生成的密钥都是这种情况】,从Key中截取长度为BlockSize长度的字符并倒序处理 例如:iv = Key.subString(0,BlockSize);//iv=g04SCvsa4dYxdGjumode_iv = ujGdxYd4asvCS40g

第二种情况:Key长度小于BlockSize【自定义的密钥可能存在】,使用PKCS5Padding方式进行填充,填充BlockSize - Key.length个字符,并倒序处理

调用加签函数

(1)函数描述

网络数据在传输过程中存在被篡改或伪装的攻击,通过对数据进行加签操作,便于数据接收端检验数据的有效性

(2)数据加签函数

public static byte[] sign(int signType, byte[] input)

public static byte[] sign(int signType, String input)

(3)参数说明

Input:待加签的数据,String或byte数据类型

signType摘要算法:MD5、SHA_224、SHA_256、SHA_384、SHA_512、HMAC_SHA224、HMAC_SHA256、HMAC_SHA384、HMAC_SHA512、SM3、HMAC_SM3

(4)返回数据

加签后的摘要数据

(5)代码实例

例如MD5摘要计算代码如下:

KiwiWBSDK.sign(KiwiWBSDK.CRYPT_MD5, input)

调用验签函数

(1)函数描述

网络数据在传输过程中存在被篡改或伪装的攻击,通过对接收到的数据进行验签操作,确认数据的有效性

数据验签函数:

public static boolean verify(int signType, String input, String signInfo)

public static boolean verify(int signType, byte[] input, String signInfo)

(2)参数说明

Input:待验签的数据,String或byte数据类型

signType验签算法:MD5、SHA_224、SHA_256、SHA_384、SHA_512、HMAC_SHA224、HMAC_SHA256、HMAC_SHA384、HMAC_SHA512、SM3、HMAC_SM3

(3)返回数据

验签后的摘要数据

(4)代码实例

例如MD5验签计算代码如下:

KiwiWBSDK.verify(KiwiWBSDK.CRYPT_MD5, inputString, sigInfo)

如遇问题可以联系客服或技术支持 友情告知一下地址,Android sdk加固:https://www.kiwisec.com/product/secure-key-box-so.html

【几维安全】Android sdk加固,sdk加固使用详细说明相关推荐

  1. Android O(SDK 8.0)新特性,刘海屏

    > Android刘海屏 Android 屏幕,16:9,17:9,19:10,18:9,18.5:9所谓全面屏.挖孔屏.凹凸屏等. android 全面屏/刘海屏有效适配- https://b ...

  2. Android安全性优化——APP加固

    现今移动应用市场火爆,APP数量呈爆发式增长,随着5G的逐渐广泛应用,APP增长趋势不断.正因APP的泛滥,网络攻击者的目标也在逐渐转移,数亿的移动互联网用户暴露在病毒攻击的范围之内,也使得手机APP ...

  3. android应用加固后闪退,360加固保加固后打开app即闪退

    首次使用360加固,完全按照说明操作. 用签名后的apk进行加固,加固选项选择了应用盗版检测和支持x86架构.加固后下载到本地,使用了360提供的签名工具进行签名.签名后安装到手机里,一运行就闪退. ...

  4. 个推无法获取个推id_最新个推Android 推送 SDK Maven 集成

    概述 公司准备采用个推作为第三方推送平台,我作为客户端的头号小鸟,掐指一算已经毕业 0.1 年了,Leader 准备把这个简单而又独立的功能点交给我来处理,我紧张兮兮的打开官网集成文档 学习了起来.其 ...

  5. Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK

    原文:Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  6. Xamarin Android项目提示SDK版本太老

    Xamarin Android项目提示SDK版本太老 错误信息:The installed Android SDK is too old.Version 24.3.4 or newer is requ ...

  7. 【Android 逆向】整体加固脱壳 ( 脱壳点简介 | 修改系统源码进行脱壳 )

    文章目录 一.脱壳点简介 二.修改系统源码进行脱壳 一.脱壳点简介 在上一篇博客 [Android 逆向]整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 rewriteD ...

  8. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | dvmDexFileOpenPartial | dexFileParse | 脱壳点 | 获取 dex 文件在内存中的首地址 )

    文章目录 前言 一.DexPrepare.cpp 中 rewriteDex() 方法分析 二.DvmDex.cpp 中 dvmDexFileOpenPartial() 方法分析 ( 脱壳点 ) 三.D ...

  9. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmContinueOptimizati() 函数分析 )

    文章目录 前言 一.DexPrepare.cpp 中 dvmContinueOptimizati() 方法分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DEX 优化流程分析 | D ...

  10. 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )

    文章目录 前言 一.DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 二./bin/dexopt 源码分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ...

最新文章

  1. 大学计算机课程改革项目,大学计算机课程改革.ppt
  2. nginx的重定向,反向代理以及负载均衡
  3. c语言中怎么吃掉最后的空格,新人提问:如何将输出时每行最后一个空格删除...
  4. 《CSS揭秘》-背景与边框
  5. 谷歌为何要大力投资生命科学初创公司?
  6. 35-面试:如何找出字符串的字典序全排列的第N种
  7. ef 排序string转int_Java排序算法——基数排序(Radix Sort)
  8. Ajax 模糊查询的简单实现
  9. Python开发基础--- 进程间通信、进程池、协程
  10. 东莞理工c语言作业,东莞理工学院 c语言复习题
  11. python经典书籍:Python编程实战 运用设计模式、并发和程序库创建高质量程序
  12. v3 微信api 请求微信_GitHub - helibin/wechatpay-postman-script: 微信支付API v3的调试工具...
  13. 在线计算机微积分,高等数学计算器
  14. 李白:下终南山过斛斯山人宿置酒
  15. Character类
  16. 瀚龙广告提供一站式的新型广告模式!大大增加用户体验
  17. 阿里巴巴《Linux命令行与shell脚本编程大全》高清版 PDF 开放下载
  18. html控制复选框选中,选中HTML复选框
  19. 《Mysql必知必会》-----笔记(2)
  20. vue把localhost改成ip地址无法访问—解决方法

热门文章

  1. 出海游戏被入侵资料被偷取该如何预防
  2. 微信原生小程序+云开发(serverless)
  3. 【入门】App测试基础
  4. proto3和proto2的区别
  5. 【sql: 联系题 23 24】查询同名学生名单,并统计同名人数 找到同名的名字并统计个数,查询 1990 年出生的学生名单...
  6. 北京实习求职的那些事
  7. BootstrapTable参数、属性、事件列表
  8. 使用HDMI接口连接显示器,报错:输入信号,超出范围
  9. Linux C语言技术(5)-数组和字符串
  10. Softing工业边缘产品的新功能助力工业数据集成到IT解决方案中