Fix decode to hex

pull/123/head
FongMi 4 years ago
parent 8aad7c86bb
commit 72a8a23db4
  1. 4
      app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java
  2. 6
      app/src/main/java/com/fongmi/android/tv/api/Decoder.java
  3. 77
      app/src/main/java/com/fongmi/android/tv/utils/AES.java
  4. 2
      app/src/main/java/com/fongmi/android/tv/utils/Updater.java

@ -84,7 +84,7 @@ public class ApiConfig {
public void loadConfig(boolean cache, Callback callback) {
new Thread(() -> {
if (cache) loadCache(Prefers.getUrl(), callback);
else loadJson(Prefers.getUrl(), callback);
else loadConfig(Prefers.getUrl(), callback);
}).start();
}
@ -94,7 +94,7 @@ public class ApiConfig {
else handler.post(() -> callback.error(R.string.error_config_get));
}
private void loadJson(String url, Callback callback) {
private void loadConfig(String url, Callback callback) {
try {
parseConfig(new Gson().fromJson(Decoder.getJson(url), JsonObject.class), callback);
} catch (Exception e) {

@ -64,9 +64,9 @@ public class Decoder {
}
private static byte[] decodeHex(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
int len = s.length() / 2;
byte[] data = new byte[len];
for (int i = 0; i < len; i++) data[i] = Integer.valueOf(s.substring(i * 2, i * 2 + 2), 16).byteValue();
return data;
}
}

@ -1,77 +0,0 @@
package com.fongmi.android.tv.utils;
import com.github.catvod.crawler.SpiderDebug;
import org.json.JSONObject;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AES {
public static String rightPading(String key, String replace, int Length) {
String strReturn = "";
String strtemp = "";
int curLength = key.trim().length();
if (key != null && curLength > Length) {
strReturn = key.trim().substring(0, Length);
} else if (key != null && curLength == Length) {
strReturn = key.trim();
} else {
for (int i = 0; i < (Length - curLength); i++) {
strtemp = strtemp + replace;
}
strReturn = key.trim() + strtemp;
}
return strReturn;
}
public static String ECB(String data, String key) {
try {
key = rightPading(key, "0", 16);
byte[] data2 = toBytes(data);
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec);
return new String(cipher.doFinal(data2));
} catch (Exception exception) {
SpiderDebug.log(exception);
}
return null;
}
public static String CBC(String src, String KEY, String IV) {
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
SecretKeySpec keySpec = new SecretKeySpec(KEY.getBytes(), "AES");
AlgorithmParameterSpec paramSpec = new IvParameterSpec(IV.getBytes());
cipher.init(Cipher.DECRYPT_MODE, keySpec, paramSpec);
return new String(cipher.doFinal(toBytes(src)));
} catch (Exception exception) {
SpiderDebug.log(exception);
}
return null;
}
public static byte[] toBytes(String src) {
int l = src.length() / 2;
byte[] ret = new byte[l];
for (int i = 0; i < l; i++) {
ret[i] = Integer.valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();
}
return ret;
}
public static boolean isJson(String content) {
try {
new JSONObject(content);
return true;
} catch (Exception e) {
return false;
}
}
}

@ -22,7 +22,7 @@ import java.util.concurrent.Executors;
public class Updater implements View.OnClickListener {
private static final String URL = "https://github.com/FongMi/TV/raw/main/release/leanback.json";
private static final String URL = "https://raw.githubusercontent.com/FongMi/TV/release/release/leanback.json";
private static final String PROXY = "https://ghproxy.com/";
private final ExecutorService executor;

Loading…
Cancel
Save