Android端接入
2022.02.14 18:32:35
SDK集成步骤
- 导入SDK
- 将NetSecKit-x.x.x.aar包拷贝到工程里的libs目录下。
- 在build.gradle配置文件中添加如下配置:
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile(name:'NetSecKit-x.x.x', ext:'aar')
}
其中x.x.x表示版本号。
- 导入需要的ABI
SDK提供了armeabi, armeabi-v7a,x86,x86_64,arm64-v8a五种ABI的支持,默认会导出这五种ABI。
如果产品本身不支持这么多ABI,就需要对最终导出的ABI进行限制,不然在原产品不支持ABI的手机上会CRASH。
如果APP只需要支持特定的ABI,比如armeabi, armeabi-v7a, x86三种,可以在build.gradle添加如下配置:
defaultConfig {
applicationId "com.XX.XXX"
minSdkVersion XX
targetSdkVersion XX
versionCode XX
versionName "X.X.X"
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}
- 添加权限信息
在AndroidMenifest.xml文件中添加下列权限配置:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
- 添加ProGuard配置
如果使用了proguard进行混淆,需要将安全SDK使用的类排除掉。
如果是使用Android Studio里默认的 proguard-rules.pro,则在里面添加:
-keep class com.netease.NetSecKit.**{*;}
SDK接口说明
白盒加密功能
- 添加头文件
import com.netease.NetSecKit.interfacejni.SecurityCipher;
- 单例
Public SecurityCipher(Context context)
功能描述:初始化SecurityCipher类实例。
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
context | Context | 任意Activity、Service等Coxtext类非空实例 |
返回值:无。
- string加密
public String getWBEncryptString (String inputData)
功能描述:客户端对输入的明文数据进行加密,然后返回密文,这个密文是发送到服务器的。
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
inputData | String | 需要加密保护的字符串数据 |
返回值:加密的结果,若出错,则返回“” 。
- buffer加密
public String getWBEncryptBuffer (byte[] inputData)
功能描述:客户端对输入的明文数据进行加密,然后返回密文,这个密文是发送到服务器的。
参数说明:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
inputData | byte[] | 需要加密保护的byte数组数 |
返回值:加密的结果,若出错,则返回“”。
- 注意事项
目前白盒加解密,只支持单向加密,即客户端加密,服务端解密;服务端返回给客户的的数据,无法使用白盒算法