京东sdk调用实例_【几维安全】Android sdk加固,sdk加固详细说明

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

拷贝.so文件

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

00dda8ecfc31f30b31091e03b45b421d.png

拷贝.aar文件

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

25774a3bf2bf5ac9e810225ecba4c00c.png

配置build.gradle文件

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

67be9a10c1d0f3d9732dfec7748e9c5b.png

配置截图如下:

2e3cef98f702911ff2bea6c692983856.png

导入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)

如遇问题联 系客 服或 者技 术支 持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值