Merge pull request #2440 from Xwite/master

feat: js支持hex编码解码
This commit is contained in:
Xwite
2022-10-16 20:55:22 +08:00
committed by GitHub
2 changed files with 25 additions and 9 deletions

View File

@@ -132,8 +132,18 @@ java.getZipStringContent(url: String, path: String)
> flags参数可省略默认Base64.NO_WRAP查看[flags参数说明](https://blog.csdn.net/zcmain/article/details/97051870)
```
java.base64Decode(str: String, flags: Int)
java.base64DecodeToByteArray(str: String, flags: Int)
java.base64Encode(str: String, flags: Int)
```
* Hex
```
/* HexString 解码为字节数组 */
hexDecodeToByteArray(hex: String): ByteArray?
/* hexString 解码为utf8String*/
hexDecodeToString(hex: String): String?
/* utf8 编码为hexString */
hexEncodeToString(utf8: String): String?
```
* 文件
> 所有对于文件的读写删操作都是相对路径,只能操作阅读缓存/android/data/{package}/cache/内的文件
```
@@ -163,7 +173,7 @@ deleteFile(path: String)
> TripleDES tansformation默认实现DESede/ECB/PKCS5Padding
> 内部实现为cn.hutool.crypto 解密加密接口支持ByteArray|Base64String|HexString|InputStream
> 输入参数key iv 支持ByteArray|Utf8String
> 如果key iv 为Hex Base64,且需要解码为ByteArray调用java.decodeBase64Hex
> 如果key iv 为Hex Base64,且需要解码为ByteArray自行调用java.base64DecodeToByteArray java.hexDecodeToByteArray
```
//解密为ByteArray 字符串
java.createSymmetricCrypto(transformation, key, iv).decrypt(data)

View File

@@ -319,7 +319,7 @@ interface JsExtensions {
}
/**
* js实现解码,不能删
* js实现base64解码,不能删
*/
fun base64Decode(str: String): String {
return EncoderUtils.base64Decode(str, Base64.NO_WRAP)
@@ -351,6 +351,19 @@ interface JsExtensions {
return EncoderUtils.base64Encode(str, flags)
}
/* HexString 解码为字节数组 */
fun hexDecodeToByteArray(hex: String): ByteArray? {
return HexUtil.decodeHex(hex)
}
/* hexString 解码为utf8String*/
fun hexDecodeToString(hex: String): String? {
return HexUtil.decodeHexStr(hex)
}
/* utf8 编码为hexString */
fun hexEncodeToString(utf8: String): String? {
return HexUtil.encodeHexStr(hex)
}
/**
* 格式化时间
*/
@@ -662,14 +675,7 @@ interface JsExtensions {
* java.createSymmetricCrypto(transformation, key, iv).encrypt(data)
* java.createSymmetricCrypto(transformation, key, iv).encryptBase64(data)
* java.createSymmetricCrypto(transformation, key, iv).encryptHex(data)
* 如果key iv 为Hex Base64,且需要解码为ByteArray调用java.decodeBase64Hex
*/
/* iv key 为Base64String HexString 到ByteArray的转换函数 */
fun decodeBase64Hex(str: String): ByteArray? {
return SecureUtil.decode(str)
}
/* 调用SymmetricCrypto key为null时使用随机密钥*/
fun createSymmetricCrypto(