Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -190,21 +190,38 @@ deleteFile(path: String)
|
|||||||
> AES transformation默认实现AES/ECB/PKCS5Padding
|
> AES transformation默认实现AES/ECB/PKCS5Padding
|
||||||
> DES transformation默认实现DES/ECB/PKCS5Padding
|
> DES transformation默认实现DES/ECB/PKCS5Padding
|
||||||
> TripleDES tansformation默认实现DESede/ECB/PKCS5Padding
|
> TripleDES tansformation默认实现DESede/ECB/PKCS5Padding
|
||||||
> 内部实现为cn.hutool.crypto 解密加密接口支持ByteArray|Base64String|HexString|InputStream
|
> 输入参数key iv 支持ByteArray|**Utf8String**
|
||||||
> 输入参数key iv 支持ByteArray|Utf8String
|
|
||||||
> 如果key iv 为Hex Base64,且需要解码为ByteArray,自行调用java.base64DecodeToByteArray java.hexDecodeToByteArray
|
|
||||||
```
|
```
|
||||||
//解密为ByteArray 字符串
|
// 创建Cipher
|
||||||
java.createSymmetricCrypto(transformation, key, iv).decrypt(data)
|
java.createSymmetricCrypto(transformation, key, iv)
|
||||||
|
```
|
||||||
java.createSymmetricCrypto(transformation, key, iv).decryptStr(data)
|
>解密加密参数 data支持ByteArray|Base64String|HexString|InputStream
|
||||||
|
```
|
||||||
|
//解密为ByteArray String
|
||||||
|
cipher.decrypt(data)
|
||||||
|
cipher.decryptStr(data)
|
||||||
//加密为ByteArray Base64字符 HEX字符
|
//加密为ByteArray Base64字符 HEX字符
|
||||||
java.createSymmetricCrypto(transformation, key, iv).encrypt(data)
|
cipher.encrypt(data)
|
||||||
|
cipher.encryptBase64(data)
|
||||||
java.createSymmetricCrypto(transformation, key, iv).encryptBase64(data)
|
cipher.encryptHex(data)
|
||||||
|
```
|
||||||
java.createSymmetricCrypto(transformation, key, iv).encryptHex(data)
|
* 非对称加密 RSA/ECIES(不支持)
|
||||||
|
> algorithm: RSA, RSA/ECB/PKCS1Padding, RSA/ECB/NoPadding, RSA/None/NoPadding, RSA/None/NoPadding
|
||||||
|
> 输入参数密钥 支持ByteArray|**Utf8String**
|
||||||
|
```
|
||||||
|
//创建cipher
|
||||||
|
java.createAsymmetricCrypto(algorithm, privateKey, publicKey)
|
||||||
|
```
|
||||||
|
> 解密加密参数 data支持ByteArray|Base64String|HexString|InputStream
|
||||||
|
> keyType: 1 使用公钥 2 使用私钥
|
||||||
|
```
|
||||||
|
//解密为ByteArray String
|
||||||
|
cipher.decrypt(data, keyType)
|
||||||
|
cipher.decryptStr(data, keyType)
|
||||||
|
//加密为ByteArray Base64字符 HEX字符
|
||||||
|
cipher.encrypt(data, keyType)
|
||||||
|
cipher.encryptBase64(data, keyType)
|
||||||
|
cipher.encryptHex(data, keyType)
|
||||||
```
|
```
|
||||||
* 摘要
|
* 摘要
|
||||||
> MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512
|
> MD5 SHA-1 SHA-224 SHA-256 SHA-384 SHA-512
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package io.legado.app.help
|
|||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import cn.hutool.crypto.digest.DigestUtil
|
import cn.hutool.crypto.digest.DigestUtil
|
||||||
import cn.hutool.crypto.digest.HMac
|
import cn.hutool.crypto.digest.HMac
|
||||||
|
import cn.hutool.crypto.asymmetric.AsymmetricCrypto
|
||||||
import cn.hutool.crypto.symmetric.SymmetricCrypto
|
import cn.hutool.crypto.symmetric.SymmetricCrypto
|
||||||
import io.legado.app.utils.MD5Utils
|
import io.legado.app.utils.MD5Utils
|
||||||
|
|
||||||
@@ -66,7 +67,28 @@ interface JsEncodeUtils {
|
|||||||
transformation, key.encodeToByteArray(), iv?.encodeToByteArray()
|
transformation, key.encodeToByteArray(), iv?.encodeToByteArray()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
//******************非对称加密解密************************//
|
||||||
|
|
||||||
|
/* keys都为null时使用随机密钥 */
|
||||||
|
fun createAsymmetricCrypto(
|
||||||
|
algorithm: String,
|
||||||
|
privateKey: ByteArray?,
|
||||||
|
publicKey: ByteArray?
|
||||||
|
): AsymmetricCrypto {
|
||||||
|
return AsymmetricCrypto(algorithm, privateKey, publicKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun createAsymmetricCrypto(
|
||||||
|
algorithm: String,
|
||||||
|
privateKey: String?,
|
||||||
|
publicKey: String?
|
||||||
|
): AsymmetricCrypto {
|
||||||
|
return createAsymmetricCrypto(
|
||||||
|
algorithm,
|
||||||
|
privateKey?.encodeToByteArray(),
|
||||||
|
publicKey?.encodeToByteArray()
|
||||||
|
)
|
||||||
|
}
|
||||||
//******************对称加密解密old************************//
|
//******************对称加密解密old************************//
|
||||||
|
|
||||||
/////AES
|
/////AES
|
||||||
|
|||||||
Reference in New Issue
Block a user