From d24ee9f1036c7f0ade2e7912a8f387359c66ada7 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 1 Aug 2023 11:36:39 +0800 Subject: [PATCH] Update Global.java --- .../com/fongmi/quickjs/method/Global.java | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java b/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java index 228aab734..d4ffd5bbb 100644 --- a/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java +++ b/quickjs/src/main/java/com/fongmi/quickjs/method/Global.java @@ -73,26 +73,6 @@ public class Global { return getProxy(true) + "&from=catvod" + "&header=" + URLEncoder.encode(headers.stringify()) + "&url=" + URLEncoder.encode(url); } - @Keep - @JSMethod - public String aesX(String mode, boolean encrypt, String input, boolean inBase64, String key, String iv, boolean outBase64) { - try { - byte[] keyBuf = key.getBytes(); - if (keyBuf.length < 16) keyBuf = Arrays.copyOf(keyBuf, 16); - byte[] ivBuf = iv == null ? new byte[0] : iv.getBytes(); - if (ivBuf.length < 16) ivBuf = Arrays.copyOf(ivBuf, 16); - Cipher cipher = Cipher.getInstance(mode + "Padding"); - SecretKeySpec keySpec = new SecretKeySpec(keyBuf, "AES"); - if (iv == null) cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, keySpec); - else cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(ivBuf)); - byte[] inBuf = inBase64 ? Base64.decode(input, Base64.DEFAULT) : input.getBytes(StandardCharsets.UTF_8); - return outBase64 ? Base64.encodeToString(cipher.doFinal(inBuf), Base64.DEFAULT) : new String(cipher.doFinal(inBuf), StandardCharsets.UTF_8); - } catch (Exception e) { - e.printStackTrace(); - return ""; - } - } - @Keep @JSMethod public Object setTimeout(JSFunction func, Integer delay) { @@ -169,13 +149,31 @@ public class Global { } } + @Keep + @JSMethod + public String aesX(String mode, boolean encrypt, String input, boolean inBase64, String key, String iv, boolean outBase64) { + try { + byte[] keyBuf = key.getBytes(); + if (keyBuf.length < 16) keyBuf = Arrays.copyOf(keyBuf, 16); + byte[] ivBuf = iv == null ? new byte[0] : iv.getBytes(); + if (ivBuf.length < 16) ivBuf = Arrays.copyOf(ivBuf, 16); + Cipher cipher = Cipher.getInstance(mode + "Padding"); + SecretKeySpec keySpec = new SecretKeySpec(keyBuf, "AES"); + if (iv == null) cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, keySpec); + else cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(ivBuf)); + byte[] inBuf = inBase64 ? Base64.decode(input, Base64.DEFAULT) : input.getBytes(StandardCharsets.UTF_8); + return outBase64 ? Base64.encodeToString(cipher.doFinal(inBuf), Base64.DEFAULT) : new String(cipher.doFinal(inBuf), StandardCharsets.UTF_8); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + private void schedule(JSFunction func, int delay) { timer.schedule(new TimerTask() { @Override public void run() { - if (!executor.isShutdown()) executor.submit(() -> { - func.call(); - }); + if (!executor.isShutdown()) executor.submit(() -> {func.call();}); } }, delay); }