|
|
@ -3,6 +3,7 @@ package io.legado.app.help |
|
|
|
import android.net.Uri |
|
|
|
import android.net.Uri |
|
|
|
import android.util.Base64 |
|
|
|
import android.util.Base64 |
|
|
|
import androidx.annotation.Keep |
|
|
|
import androidx.annotation.Keep |
|
|
|
|
|
|
|
import cn.hutool.crypto.digest.DigestUtil |
|
|
|
import cn.hutool.crypto.symmetric.AES |
|
|
|
import cn.hutool.crypto.symmetric.AES |
|
|
|
import cn.hutool.crypto.symmetric.DESede |
|
|
|
import cn.hutool.crypto.symmetric.DESede |
|
|
|
import io.legado.app.BuildConfig |
|
|
|
import io.legado.app.BuildConfig |
|
|
@ -760,4 +761,32 @@ interface JsExtensions { |
|
|
|
).decryptStr(data) |
|
|
|
).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) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|