Kaynağa Gözat

docs: update docs

Xwite 4 yıl önce
ebeveyn
işleme
00e4c98545

+ 14 - 28
app/src/main/assets/help/jsHelp.md

@@ -157,34 +157,20 @@ deleteFile(path: String)
 
 > 其他加密方式 可在js中[调用](https://m.jb51.net/article/92138.htm)[hutool-crypto](https://www.hutool.cn/docs/#/)
 
-* AES
-> transformation默认实现AES/ECB/PKCS5Padding
-```
-java.aesDecodeToString(str: String, key: String, transformation: String, iv: String)
-
-java.aesBase64DecodeToString(str: String, key: String, transformation: String, iv: String)
-
-java.aesEncodeToString(str: String, key: String, transformation: String, iv: String)
-
-java.aesEncodeToBase64String(str: String, key: String, transformation: String, iv: String)
-```
-* DES
-> transformation默认实现DES/ECB/PKCS5Padding
-```
-java.desDecodeToString(str: String, key: String, transformation: String, iv: String)
-
-java.desBase64DecodeToString(str: String, key: String, transformation: String, iv: String)
-
-java.desEncodeToString(str: String, key: String, transformation: String, iv: String)
-
-java.desEncodeToBase64String(str: String, key: String, transformation: String, iv: String)
-```
-* 3DES
-> tansformation默认实现DESede/ECB/PKCS5Padding
-```
-java.tripleDESEncodeBase64Str(data: String,key: String,mode: String,padding: String,iv: String): String?
-
-java.tripleDESDecodeStr(data: String,key: String,mode: String,padding: String,iv: String): String?
+* 对称加密AES/DES/TripleDES
+> AES transformation默认实现AES/ECB/PKCS5Padding  
+> DES transformation默认实现DES/ECB/PKCS5Padding  
+> TripleDES tansformation默认实现DESede/ECB/PKCS5Padding  
+> 内部实现为cn.hutool.crypto 解密加密接口支持ByteArray|Base64String|HexString  
+> 输入参数key iv 支持ByteArray|Base64String|HexString|Utf8String
+```
+//解密为ByteArray 字符串
+java.createSymmetricCrypto(transformation, key, iv).decrypt(data)
+java.createSymmetricCrypto(transformation, key, iv).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)
 ```
 * 摘要
 > MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512

+ 42 - 11
app/src/main/java/io/legado/app/help/JsExtensions.kt

@@ -176,18 +176,15 @@ interface JsExtensions {
 
     /**
      * 缓存以文本方式保存的文件 如.js .txt等
+     * @param urlStr 网络文件的链接
+     * @param saveTime 缓存时间,单位:秒
+     * @return 返回缓存后的文件内容
      */
     fun cacheFile(urlStr: String): String? {
         return cacheFile(urlStr, 0)
     }
 
-    /**
-     * 缓存以文本方式保存的文件 如.js .txt等
-     * @param urlStr 网络文件的链接
-     * @param saveTime 缓存时间,单位:秒
-     * @return 返回缓存后的文件内容
-     */
-    fun cacheFile(urlStr: String, saveTime: Int = 0): String? {
+    fun cacheFile(urlStr: String, saveTime: Int): String? {
         val key = md5Encode16(urlStr)
         val cache = CacheManager.getFile(key)
         if (cache.isNullOrBlank()) {
@@ -202,7 +199,11 @@ interface JsExtensions {
     /**
      *js实现读取cookie
      */
-    fun getCookie(tag: String, key: String? = null): String {
+    fun getCookie(tag: String): String {
+        return getCookie(tag, null)
+    }
+
+    fun getCookie(tag: String, key: String?): String {
         return if (key != null) {
             CookieStore.getKey(tag, key)
         } else {
@@ -649,11 +650,28 @@ interface JsExtensions {
 
 //******************对称加密解密************************//
 
+    /**
+     * 在js中这样使用
+     * java.createSymmetricCrypto(transformation, key, iv).decrypt(data)
+     * java.createSymmetricCrypto(transformation, key, iv).decryptStr(data)
+
+     * java.createSymmetricCrypto(transformation, key, iv).encrypt(data)
+     * java.createSymmetricCrypto(transformation, key, iv).encryptBase64(data)
+     * java.createSymmetricCrypto(transformation, key, iv).encryptHex(data)
+    */
+
     /* 自动转换key iv 到ByteArray 支持base64 hex uft8*/
+    fun createSymmetricCrypto(
+        transformation: String,
+        key: String
+    ): SymmetricCrypto {
+        return createSymmetricCrypto(transformation, key, null)
+    }
+
     fun createSymmetricCrypto(
         transformation: String,
         key: String,
-        iv: String? = null
+        iv: String?
     ): SymmetricCrypto {
         return createSymmetricCrypto(
             transformation,
@@ -663,10 +681,23 @@ interface JsExtensions {
     }
 
     /* 调用SymmetricCrypto key为null时使用随机密钥*/
+    fun createSymmetricCrypto(
+        transformation: String
+    ): SymmetricCrypto {
+        return createSymmetricCrypto(transformation, null, null)
+    }
+
+    fun createSymmetricCrypto(
+        transformation: String,
+        key: ByteArray
+    ): SymmetricCrypto {
+        return createSymmetricCrypto(transformation, key, null)
+    }
+
     fun createSymmetricCrypto(
         transformation: String,
-        key: ByteArray? = null,
-        iv: ByteArray? = null
+        key: ByteArray?,
+        iv: ByteArray?
     ): SymmetricCrypto {
         val symmetricCrypto = SymmetricCrypto(transformation, key)
         return if (iv != null && !iv.isEmpty()) symmetricCrypto.setIv(iv) else symmetricCrypto