|
|
@@ -1,6 +1,7 @@
|
|
|
package io.legado.app.help
|
|
|
|
|
|
import android.util.Base64
|
|
|
+import android.webkit.JavascriptInterface
|
|
|
import cn.hutool.crypto.digest.DigestUtil
|
|
|
import cn.hutool.crypto.digest.HMac
|
|
|
import cn.hutool.crypto.symmetric.SymmetricCrypto
|
|
|
@@ -17,10 +18,12 @@ import io.legado.app.utils.MD5Utils
|
|
|
@Suppress("unused")
|
|
|
interface JsEncodeUtils {
|
|
|
|
|
|
+ @JavascriptInterface
|
|
|
fun md5Encode(str: String): String {
|
|
|
return MD5Utils.md5Encode(str)
|
|
|
}
|
|
|
|
|
|
+ @JavascriptInterface
|
|
|
fun md5Encode16(str: String): String {
|
|
|
return MD5Utils.md5Encode16(str)
|
|
|
}
|
|
|
@@ -39,6 +42,7 @@ interface JsEncodeUtils {
|
|
|
*/
|
|
|
|
|
|
/* 调用SymmetricCrypto key为null时使用随机密钥*/
|
|
|
+ @JavascriptInterface
|
|
|
fun createSymmetricCrypto(
|
|
|
transformation: String,
|
|
|
key: ByteArray?,
|
|
|
@@ -48,6 +52,7 @@ interface JsEncodeUtils {
|
|
|
return if (iv != null && iv.isNotEmpty()) symmetricCrypto.setIv(iv) else symmetricCrypto
|
|
|
}
|
|
|
|
|
|
+ @JavascriptInterface
|
|
|
fun createSymmetricCrypto(
|
|
|
transformation: String,
|
|
|
key: ByteArray
|
|
|
@@ -55,6 +60,7 @@ interface JsEncodeUtils {
|
|
|
return createSymmetricCrypto(transformation, key, null)
|
|
|
}
|
|
|
|
|
|
+ @JavascriptInterface
|
|
|
fun createSymmetricCrypto(
|
|
|
transformation: String,
|
|
|
key: String
|
|
|
@@ -62,6 +68,7 @@ interface JsEncodeUtils {
|
|
|
return createSymmetricCrypto(transformation, key, null)
|
|
|
}
|
|
|
|
|
|
+ @JavascriptInterface
|
|
|
fun createSymmetricCrypto(
|
|
|
transformation: String,
|
|
|
key: String,
|
|
|
@@ -74,6 +81,7 @@ interface JsEncodeUtils {
|
|
|
//******************非对称加密解密************************//
|
|
|
|
|
|
/* keys都为null时使用随机密钥 */
|
|
|
+ @JavascriptInterface
|
|
|
fun createAsymmetricCrypto(
|
|
|
transformation: String
|
|
|
): AsymmetricCrypto {
|
|
|
@@ -81,6 +89,7 @@ interface JsEncodeUtils {
|
|
|
}
|
|
|
|
|
|
//******************签名************************//
|
|
|
+ @JavascriptInterface
|
|
|
fun createSign(
|
|
|
algorithm: String
|
|
|
): Sign {
|
|
|
@@ -100,6 +109,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decrypt(str)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesDecodeToByteArray(
|
|
|
str: String, key: String, transformation: String, iv: String
|
|
|
): ByteArray? {
|
|
|
@@ -117,6 +127,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decryptStr(str)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesDecodeToString(
|
|
|
str: String, key: String, transformation: String, iv: String
|
|
|
): String? {
|
|
|
@@ -137,6 +148,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decryptStr(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesDecodeArgsBase64Str(
|
|
|
data: String,
|
|
|
key: String,
|
|
|
@@ -162,6 +174,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decrypt(str)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesBase64DecodeToByteArray(
|
|
|
str: String, key: String, transformation: String, iv: String
|
|
|
): ByteArray? {
|
|
|
@@ -179,6 +192,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decryptStr(str)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesBase64DecodeToString(
|
|
|
str: String, key: String, transformation: String, iv: String
|
|
|
): String? {
|
|
|
@@ -196,6 +210,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decrypt(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesEncodeToByteArray(
|
|
|
data: String, key: String, transformation: String, iv: String
|
|
|
): ByteArray? {
|
|
|
@@ -213,6 +228,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decryptStr(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesEncodeToString(
|
|
|
data: String, key: String, transformation: String, iv: String
|
|
|
): String? {
|
|
|
@@ -230,6 +246,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).encryptBase64(data).toByteArray()")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesEncodeToBase64ByteArray(
|
|
|
data: String, key: String, transformation: String, iv: String
|
|
|
): ByteArray? {
|
|
|
@@ -247,6 +264,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).encryptBase64(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesEncodeToBase64String(
|
|
|
data: String, key: String, transformation: String, iv: String
|
|
|
): String? {
|
|
|
@@ -268,6 +286,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).encryptBase64(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun aesEncodeArgsBase64Str(
|
|
|
data: String,
|
|
|
key: String,
|
|
|
@@ -283,6 +302,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decryptStr(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun desDecodeToString(
|
|
|
data: String, key: String, transformation: String, iv: String
|
|
|
): String? {
|
|
|
@@ -293,6 +313,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decryptStr(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun desBase64DecodeToString(
|
|
|
data: String, key: String, transformation: String, iv: String
|
|
|
): String? {
|
|
|
@@ -303,6 +324,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).encrypt(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun desEncodeToString(
|
|
|
data: String, key: String, transformation: String, iv: String
|
|
|
): String? {
|
|
|
@@ -313,6 +335,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).encryptBase64(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun desEncodeToBase64String(
|
|
|
data: String, key: String, transformation: String, iv: String
|
|
|
): String? {
|
|
|
@@ -334,6 +357,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decryptStr(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun tripleDESDecodeStr(
|
|
|
data: String,
|
|
|
key: String,
|
|
|
@@ -358,6 +382,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).decryptStr(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun tripleDESDecodeArgsBase64Str(
|
|
|
data: String,
|
|
|
key: String,
|
|
|
@@ -387,6 +412,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).encryptBase64(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun tripleDESEncodeBase64Str(
|
|
|
data: String,
|
|
|
key: String,
|
|
|
@@ -412,6 +438,7 @@ interface JsEncodeUtils {
|
|
|
"过于繁琐弃用",
|
|
|
ReplaceWith("createSymmetricCrypto(transformation, key, iv).encryptBase64(data)")
|
|
|
)
|
|
|
+ @JavascriptInterface
|
|
|
fun tripleDESEncodeArgsBase64Str(
|
|
|
data: String,
|
|
|
key: String,
|
|
|
@@ -435,6 +462,7 @@ interface JsEncodeUtils {
|
|
|
* @param algorithm 签名算法
|
|
|
* @return 16进制字符串
|
|
|
*/
|
|
|
+ @JavascriptInterface
|
|
|
fun digestHex(
|
|
|
data: String,
|
|
|
algorithm: String,
|
|
|
@@ -449,6 +477,7 @@ interface JsEncodeUtils {
|
|
|
* @param algorithm 签名算法
|
|
|
* @return Base64字符串
|
|
|
*/
|
|
|
+ @JavascriptInterface
|
|
|
fun digestBase64Str(
|
|
|
data: String,
|
|
|
algorithm: String,
|
|
|
@@ -465,6 +494,7 @@ interface JsEncodeUtils {
|
|
|
* @return 16进制字符串
|
|
|
*/
|
|
|
@Suppress("FunctionName")
|
|
|
+ @JavascriptInterface
|
|
|
fun HMacHex(
|
|
|
data: String,
|
|
|
algorithm: String,
|
|
|
@@ -482,6 +512,7 @@ interface JsEncodeUtils {
|
|
|
* @return Base64字符串
|
|
|
*/
|
|
|
@Suppress("FunctionName")
|
|
|
+ @JavascriptInterface
|
|
|
fun HMacBase64(
|
|
|
data: String,
|
|
|
algorithm: String,
|
|
|
@@ -494,4 +525,4 @@ interface JsEncodeUtils {
|
|
|
}
|
|
|
|
|
|
|
|
|
-}
|
|
|
+}
|