From fb96103429ca8f12574dbf22ddf6f32bb093a34f Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Tue, 14 Mar 2023 18:42:32 +0800 Subject: [PATCH] =?UTF-8?q?js=E6=B7=BB=E5=8A=A0=E7=AD=BE=E5=90=8D=E7=AE=97?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/help/jsHelp.md | 15 ++++++++++--- app/src/main/assets/updateLog.md | 2 +- .../java/io/legado/app/help/JsEncodeUtils.kt | 21 +++++++++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/app/src/main/assets/help/jsHelp.md b/app/src/main/assets/help/jsHelp.md index c9bbd7773..d06127d70 100644 --- a/app/src/main/assets/help/jsHelp.md +++ b/app/src/main/assets/help/jsHelp.md @@ -218,6 +218,18 @@ cipher.encrypt(data, keyType) cipher.encryptBase64(data, keyType) cipher.encryptHex(data, keyType) ``` +* 签名 +> 输入参数密钥 支持ByteArray|**Utf8String** +``` +//创建Sign +java.createSign(algorithm, privateKey, publicKey) +``` +> 签名参数 data支持ByteArray|inputStream|String +``` +//签名输出 ByteArray HexString +sign.sign(data) +sign.signHex(data) +``` * 摘要 ``` java.digestHex(data: String, algorithm: String,): String? @@ -236,9 +248,6 @@ java.HMacHex(data: String, algorithm: String, key: String): String java.HMacBase64(data: String, algorithm: String, key: String): String ``` -https://developer.android.google.cn/reference/kotlin/java/security/Signature - - ## book对象的可用属性和方法 ### 属性 > 使用方法: 在js中或{{}}中使用book.属性的方式即可获取.如在正文内容后加上 ##{{book.name+"正文卷"+title}} 可以净化 书名+正文卷+章节名称(如 我是大明星正文卷第二章我爸是豪门总裁) 这一类的字符. diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 4b675d952..3179efb00 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -14,7 +14,7 @@ **2023/03/13** * 更新cronet: 111.0.5563.57 * 优化文件型书源,解决压缩文件编码不是UTF-8报错问题 - +* js添加非对称加密和签名算法 * 文件类书源支持zip 7z rar4解压 * java.ajax(url: Any)自动判断是列表还是字符串 * 修复一些bug 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 ab068b43d..295e4bfbc 100644 --- a/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt +++ b/app/src/main/java/io/legado/app/help/JsEncodeUtils.kt @@ -4,6 +4,7 @@ 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.asymmetric.Sign import cn.hutool.crypto.symmetric.SymmetricCrypto import io.legado.app.utils.MD5Utils @@ -89,6 +90,26 @@ interface JsEncodeUtils { publicKey?.encodeToByteArray() ) } + //******************签名************************// + fun createSign( + algorithm: String, + privateKey: String?, + publicKey: String? + ): Sign { + return createSign( + algorithm + privateKey?.encodeToByteArray(), + publicKey?.encodeToByteArray() + ) + } + + fun createSign( + algorithm: String, + privateKey: ByteArray?, + publicKey: ByteArray? + ): Sign { + return Sign(algorithm, privateKey, publicKey) + } //******************对称加密解密old************************// /////AES