Просмотр исходного кода

feat: add digest encryption method

olixina 4 лет назад
Родитель
Сommit
4322dcb4d1
1 измененных файлов с 29 добавлено и 0 удалено
  1. 29 0
      app/src/main/java/io/legado/app/help/JsExtensions.kt

+ 29 - 0
app/src/main/java/io/legado/app/help/JsExtensions.kt

@@ -3,6 +3,7 @@ package io.legado.app.help
 import android.net.Uri
 import android.util.Base64
 import androidx.annotation.Keep
+import cn.hutool.crypto.digest.DigestUtil
 import cn.hutool.crypto.symmetric.AES
 import cn.hutool.crypto.symmetric.DESede
 import io.legado.app.BuildConfig
@@ -760,4 +761,32 @@ interface JsExtensions {
         ).decryptStr(data)
     }
 
+    /**
+     * 生成摘要,并转为16进制字符串
+     *
+     * @param data 被摘要数据
+     * @param algorithm 签名算法
+     * @return 16进制字符串
+     */
+    fun digestHex(
+        data: String,
+        algorithm: String,
+    ): String? {
+        return DigestUtil.digester(algorithm).digestHex(data)
+    }
+
+    /**
+     * 生成摘要,并转为Base64字符串
+     *
+     * @param data 被摘要数据
+     * @param algorithm 签名算法
+     * @return Base64字符串
+     */
+    fun digestBase64Str(
+        data: String,
+        algorithm: String,
+    ): String? {
+        return Base64.encodeToString(DigestUtil.digester(algorithm).digest(data), Base64.NO_WRAP)
+    }
+
 }