Initial commit
This commit is contained in:
150
sources/com/ijm/dataencryption/de/DataDecryptTool.java
Normal file
150
sources/com/ijm/dataencryption/de/DataDecryptTool.java
Normal file
@@ -0,0 +1,150 @@
|
||||
package com.ijm.dataencryption.de;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Properties;
|
||||
import java.util.Random;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class DataDecryptTool {
|
||||
private static final String DATA_DECRYPT_CONFIG_FILENAME = "data_decrypt_config.properties";
|
||||
public static final int DECRYPT_ALL_FILE = 256;
|
||||
public static final int DECRYPT_DB_FILE = 512;
|
||||
public static final int DECRYPT_SP_FILE = 1024;
|
||||
public static final int ENCRYPT_DB = 2;
|
||||
public static final int ENCRYPT_SP = 1;
|
||||
private static final String KEY_DDECRYPT_SDK_VNAME = "ddecrypt_sdk_vname";
|
||||
private static boolean isAccredited = false;
|
||||
|
||||
private static void byte2hex(byte b, StringBuffer stringBuffer) {
|
||||
char[] cArr = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
|
||||
stringBuffer.append(cArr[(b & 240) >> 4]);
|
||||
stringBuffer.append(cArr[b & 15]);
|
||||
}
|
||||
|
||||
private static native boolean dowork(String str, int i, String str2, String str3, String str4);
|
||||
|
||||
public static void doworkForDecrypt(Context context, int i) {
|
||||
if (!isAccredited) {
|
||||
Log.i("ijm", "application is not effect accredit.");
|
||||
return;
|
||||
}
|
||||
long currentTimeMillis = System.currentTimeMillis();
|
||||
dowork("qmFJh65QoklKoT9Vs7hFrSU=;" + context.getPackageName(), i, (md5(String.valueOf(currentTimeMillis)) + md5(String.valueOf(new Random().nextLong() + currentTimeMillis))).toUpperCase(), "", "0x16384");
|
||||
}
|
||||
|
||||
private static String getFinger(String str, byte[] bArr) {
|
||||
try {
|
||||
return toHexString(MessageDigest.getInstance(str).digest(bArr));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static String getVersion(Context context) {
|
||||
String str;
|
||||
Context applicationContext = context.getApplicationContext();
|
||||
InputStream inputStream = null;
|
||||
try {
|
||||
try {
|
||||
Properties properties = new Properties();
|
||||
inputStream = applicationContext.getAssets().open(DATA_DECRYPT_CONFIG_FILENAME);
|
||||
properties.load(inputStream);
|
||||
str = properties.getProperty(KEY_DDECRYPT_SDK_VNAME);
|
||||
if (inputStream != null) {
|
||||
try {
|
||||
inputStream.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
if (inputStream != null) {
|
||||
try {
|
||||
inputStream.close();
|
||||
} catch (IOException e2) {
|
||||
e2.printStackTrace();
|
||||
}
|
||||
}
|
||||
throw th;
|
||||
}
|
||||
} catch (Exception e3) {
|
||||
e3.printStackTrace();
|
||||
if (inputStream != null) {
|
||||
try {
|
||||
inputStream.close();
|
||||
} catch (IOException e4) {
|
||||
e4.printStackTrace();
|
||||
}
|
||||
}
|
||||
str = "Unknown";
|
||||
}
|
||||
return "Unknown".equals(str) ? "2.0.0" : str;
|
||||
}
|
||||
|
||||
private static String md5(String str) {
|
||||
if (TextUtils.isEmpty(str)) {
|
||||
return "";
|
||||
}
|
||||
try {
|
||||
byte[] digest = MessageDigest.getInstance("MD5").digest(str.getBytes());
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (byte b : digest) {
|
||||
String hexString = Integer.toHexString(b & 255);
|
||||
if (hexString.length() == 1) {
|
||||
hexString = "0" + hexString;
|
||||
}
|
||||
sb.append(hexString);
|
||||
}
|
||||
return sb.toString();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
private static native String setKey(Context context, String str);
|
||||
|
||||
public static StatusInfo setLicenseKey(Context context, String str) {
|
||||
try {
|
||||
if (context == null) {
|
||||
return new StatusInfo(-6);
|
||||
}
|
||||
try {
|
||||
System.loadLibrary("ijmDataDecryption");
|
||||
String[] split = setKey(context, str).split(";");
|
||||
StatusInfo statusInfo = new StatusInfo();
|
||||
if (split.length > 1) {
|
||||
statusInfo.setStatusCode(Integer.valueOf(split[0]).intValue());
|
||||
statusInfo.setExpiredDate(split[1]);
|
||||
} else if (split.length > 0) {
|
||||
statusInfo.setStatusCode(Integer.valueOf(split[0]).intValue());
|
||||
statusInfo.setExpiredDate("");
|
||||
}
|
||||
if (statusInfo.getStatusCode() == 1) {
|
||||
isAccredited = true;
|
||||
}
|
||||
return statusInfo;
|
||||
} catch (Throwable th) {
|
||||
th.printStackTrace();
|
||||
return new StatusInfo(-7);
|
||||
}
|
||||
} catch (Exception unused) {
|
||||
return new StatusInfo();
|
||||
}
|
||||
}
|
||||
|
||||
private static String toHexString(byte[] bArr) {
|
||||
StringBuffer stringBuffer = new StringBuffer();
|
||||
for (byte b : bArr) {
|
||||
byte2hex(b, stringBuffer);
|
||||
}
|
||||
return stringBuffer.toString();
|
||||
}
|
||||
}
|
65
sources/com/ijm/dataencryption/de/StatusInfo.java
Normal file
65
sources/com/ijm/dataencryption/de/StatusInfo.java
Normal file
@@ -0,0 +1,65 @@
|
||||
package com.ijm.dataencryption.de;
|
||||
|
||||
import com.baidu.cloud.media.player.BDCloudMediaPlayer;
|
||||
import com.tencent.mm.opensdk.modelbase.BaseResp;
|
||||
import com.ubt.jimu.course.repository.CourseResult;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class StatusInfo {
|
||||
private String expiredDate;
|
||||
private int statusCode;
|
||||
|
||||
public StatusInfo() {
|
||||
this.statusCode = 0;
|
||||
this.expiredDate = "";
|
||||
}
|
||||
|
||||
public String getExpiredDate() {
|
||||
return this.expiredDate;
|
||||
}
|
||||
|
||||
public int getStatusCode() {
|
||||
return this.statusCode;
|
||||
}
|
||||
|
||||
public String getStatusDescribe() {
|
||||
switch (this.statusCode) {
|
||||
case BaseResp.ErrCode.ERR_BAN /* -6 */:
|
||||
return "context is null";
|
||||
case BaseResp.ErrCode.ERR_UNSUPPORT /* -5 */:
|
||||
return "sign info verify failed";
|
||||
case -4:
|
||||
return "package name verify failed";
|
||||
case -3:
|
||||
return "date is expired";
|
||||
case -2:
|
||||
return "user key data is changed or error format";
|
||||
case -1:
|
||||
return "user key data is too short or error format";
|
||||
case 0:
|
||||
return BDCloudMediaPlayer.OnNativeInvokeListener.ARG_ERROR;
|
||||
case 1:
|
||||
return CourseResult.SUCCESS;
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
protected void setExpiredDate(String str) {
|
||||
this.expiredDate = str;
|
||||
}
|
||||
|
||||
public void setStatusCode(int i) {
|
||||
this.statusCode = i;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "[statusCode=" + this.statusCode + ", expiredDate=" + this.expiredDate + ", describe=" + getStatusDescribe() + "]";
|
||||
}
|
||||
|
||||
public StatusInfo(int i) {
|
||||
this.statusCode = 0;
|
||||
this.expiredDate = "";
|
||||
this.statusCode = i;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user