资源AES解密接入文档.md
3.92 KB
资源AES解密接入文档
注意事项:
-
使用so库需使用如下签名打包,否则调用接口失败
guangka签名md5 = "DE512029CD933F45124586FB275B645C"; wanqi签名md5 = "F3931078270964DFA23F0444EB1A8AB9"; gktest签名md5 = "15D040B1F80BA16B4DCCFDE61B7F5BEC"; jingyou签名md5 = "4992B09A21DEDEF3B4F776214E706287";
添加资源环境
- 将libs下的Jar包和so库(根据游戏复制对应的so库)项目的libs下
- 在工程的build.gradle中添加如下配置
sourceSets { main { jniLibs.srcDirs = ['libs'] } }
在Application或者主load对应so库
static {
System.loadLibrary("common-sdk");
}
接入调用(接口在CryptInterface类中)
-
初始化接口(Application或者主Activity的onCreate中调用)
public static void init(Application application)
例子:
CryptInterface.init(getApplication());
-
解密接口(解密assets目录中的资源)
public static void decodeAssetsFilesFromDir(String fromDirPath, String toDirPath, CryptCallBack callBack)
接口参数说明
字段名称 | 字段说明 |
---|---|
fromDirPath | 要解密资源assets的相对目录 |
toDirPath | 解密资源到某个目录 |
callBack | 解密结果回调 |
CryptCallBack说明:
字段名称 | 字段说明 |
---|---|
code | 10:解密成功(所有资源都成功才返回) 其他code为失败 |
msg | 解密结果描述 |
例子:
CryptInterface.decodeAssetsFilesFromDir("commonEncode", Environment.getExternalStorageDirectory() + "/gametest/encodeRes7", new CryptCallBack() {
@Override
public void callback(int code, Object msg) {
CommonLog.logDebug("code:" + code + " message:" + msg);
}
});
- 解密接口(解密除assets目录外的资源)
public static void decodeSdFilesFromDir(String fromDirPath, String toDirPath, CryptCallBack callBack)
接口参数说明
字段名称 | 字段说明 |
---|---|
fromDirPath | 要解密资源的绝对路径 |
toDirPath | 解密资源到某个目录 |
callBack | 解密结果回调 |
CryptCallBack说明:
字段名称 | 字段说明 |
---|---|
code | 10:解密成功(所有资源都成功才返回) 其他code为失败 |
msg | 解密结果描述 |
例子:
File storageDirectory = Environment.getExternalStorageDirectory();
String fromDir = storageDirectory + "/gametest/res";
String toDir = storageDirectory + "/gametest/decodeRes";
CryptInterface.decodeSdFilesFromDir(fromDir, toDir, new CryptCallBack() {
@Override
public void callback(int code, Object msg) {
CommonLog.logDebug("code:" + code + " message:" + msg);
}
});
- 解密接口(直接解密传递的内容)
public static void decode(byte[] content, CryptCallBack callBack)
接口参数说明
字段名称 | 字段说明 |
---|---|
content | 要解密的内容 |
callBack | 解密结果回调 |
CryptCallBack说明:
字段名称 | 字段说明 |
---|---|
code | 10:解密成功(所有资源都成功才返回) 其他code为失败 |
msg | 当code为10时返回的是解密内容(类型是byte数组) 其他时失败描述 |
例子:
byte[] decodeContent = {-31,-25,-89,40,108,-67,-41,-61,-92,-103,-104,-106,-93,38,-8,-115};
CryptInterface.decode(decodeContent, new CryptCallBack() {
@Override
public void callback(int code, Object msg) {
if(code == CryptCallBack.success){
//解密成功
byte[] decodeResult = (byte[]) msg;
CommonLog.logDebug("msg:" + new String(decodeResult,0,decodeResult.length));
}else{
//解密失败
CommonLog.logError("encode error:" + msg);
}
}
});