From fa305c1ab27d83d4e14bff5ab3be81d98a46fc58 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Tue, 14 Mar 2023 12:12:35 +0800 Subject: [PATCH 1/3] update jshelp --- app/src/main/assets/help/jsHelp.md | 43 +++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/app/src/main/assets/help/jsHelp.md b/app/src/main/assets/help/jsHelp.md index ffcccab31..84f9c3f8d 100644 --- a/app/src/main/assets/help/jsHelp.md +++ b/app/src/main/assets/help/jsHelp.md @@ -190,21 +190,38 @@ deleteFile(path: String) > AES transformation默认实现AES/ECB/PKCS5Padding > DES transformation默认实现DES/ECB/PKCS5Padding > TripleDES tansformation默认实现DESede/ECB/PKCS5Padding -> 内部实现为cn.hutool.crypto 解密加密接口支持ByteArray|Base64String|HexString|InputStream -> 输入参数key iv 支持ByteArray|Utf8String -> 如果key iv 为Hex Base64,且需要解码为ByteArray,自行调用java.base64DecodeToByteArray java.hexDecodeToByteArray +> 输入参数key iv 支持ByteArray|**Utf8String** ``` -//解密为ByteArray 字符串 -java.createSymmetricCrypto(transformation, key, iv).decrypt(data) - -java.createSymmetricCrypto(transformation, key, iv).decryptStr(data) - +// 创建Cipher +java.createSymmetricCrypto(transformation, key, iv) +``` +>解密加密参数 data支持ByteArray|Base64String|HexString|InputStream +``` +//解密为ByteArray String +cipher.decrypt(data) +cipher.decryptStr(data) //加密为ByteArray Base64字符 HEX字符 -java.createSymmetricCrypto(transformation, key, iv).encrypt(data) - -java.createSymmetricCrypto(transformation, key, iv).encryptBase64(data) - -java.createSymmetricCrypto(transformation, key, iv).encryptHex(data) +cipher.encrypt(data) +cipher.encryptBase64(data) +cipher.encryptHex(data) +``` +* 非对称加密 RSA/ECIES(不支持) +> algorithm: RSA, RSA/ECB/PKCS1Padding, RSA/ECB/NoPadding, RSA/None/NoPadding, RSA/None/NoPadding +> 输入参数密钥 支持ByteArray|**Utf8String** +``` +//创建cipher +java.createAsymmetricCrypto(algorithm, privateKey, publicKey) +``` +> 解密加密参数 data支持ByteArray|Base64String|HexString|InputStream +> keyType: 1 使用公钥 2 使用私钥 +``` +//解密为ByteArray String +cipher.decrypt(data, keyType) +cipher.decryptStr(data, keyType) +//加密为ByteArray Base64字符 HEX字符 +cipher.encrypt(data, keyType) +cipher.encryptBase64(data, keyType) +cipher.encryptHex(data, keyType) ``` * 摘要 > MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512 From 7fc7fd7fd11339a76b32723c8448fcda988fd168 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Tue, 14 Mar 2023 12:32:58 +0800 Subject: [PATCH 2/3] =?UTF-8?q?js=E5=AE=9E=E7=8E=B0=E9=9D=9E=E5=AF=B9?= =?UTF-8?q?=E7=A7=B0=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #2878 --- .../java/io/legado/app/help/JsEncodeUtils.kt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt b/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt index 17bc9cfcf..549fe438e 100644 --- a/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt +++ b/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt @@ -3,6 +3,7 @@ package io.legado.app.help import android.util.Base64 import cn.hutool.crypto.digest.DigestUtil import cn.hutool.crypto.digest.HMac +import cn.hutool.crypto.asymmetric.AsymmetricCrypto import cn.hutool.crypto.symmetric.SymmetricCrypto import io.legado.app.utils.MD5Utils @@ -66,7 +67,28 @@ interface JsEncodeUtils { transformation, key.encodeToByteArray(), iv?.encodeToByteArray() ) } + //******************非对称加密解密************************// + /* keys都为null时使用随机密钥 */ + fun createAsymmetricCrypto( + algorithm: String, + privateKey: ByteArray?, + publicKey: ByteArray? + ): AsymmetricCrypto { + return AsymmetricCrypto(algorithm, privateKey, publicKey) + } + + fun createAsymmetricCrypto( + algorithm: String, + privateKey: String?, + publicKey: String? + ): AsymmetricCrypto { + return createAsymmetricCrypto( + algorithm, + privateKey.encodeToByteArray(), + publicKey.encodeToByteArray() + ) + } //******************对称加密解密old************************// /////AES From 93e0a0b94ef94b0abc126f9aea302b1aff1bad21 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Tue, 14 Mar 2023 12:37:02 +0800 Subject: [PATCH 3/3] =?UTF-8?q?js=E5=AE=9E=E7=8E=B0=E9=9D=9E=E5=AF=B9?= =?UTF-8?q?=E7=A7=B0=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/help/JsEncodeUtils.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt b/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt index 549fe438e..e360fde7b 100644 --- a/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt +++ b/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt @@ -85,8 +85,8 @@ interface JsEncodeUtils { ): AsymmetricCrypto { return createAsymmetricCrypto( algorithm, - privateKey.encodeToByteArray(), - publicKey.encodeToByteArray() + privateKey?.encodeToByteArray(), + publicKey?.encodeToByteArray() ) } //******************对称加密解密old************************//