feat(JsExtensions): add Hmac and update docs
This commit is contained in:
@@ -54,7 +54,11 @@ java.put(key, value)
|
|||||||
java.ajax(urlStr): String
|
java.ajax(urlStr): String
|
||||||
java.ajaxAll(urlList: Array<String>): Array<StrResponse?>
|
java.ajaxAll(urlList: Array<String>): Array<StrResponse?>
|
||||||
//返回Response 方法body() code() message() header() raw() toString()
|
//返回Response 方法body() code() message() header() raw() toString()
|
||||||
java.connect(urlStr): Response<String>
|
java.connect(urlStr): StrResponse
|
||||||
|
|
||||||
|
java.post(url: String, body: String, headerMap: Map<String, String>): Connection.Response
|
||||||
|
java.get(url: String, headerMap: Map<String, String>): Connection.Response
|
||||||
|
java.head(url: String, headerMap: Map<String, String>): Connection.Response
|
||||||
|
|
||||||
* 使用webView访问网络
|
* 使用webView访问网络
|
||||||
* @param html 直接用webView载入的html, 如果html为空直接访问url
|
* @param html 直接用webView载入的html, 如果html为空直接访问url
|
||||||
@@ -130,11 +134,8 @@ deleteFile(path: String)
|
|||||||
> [常见加密解密算法介绍](https://www.yijiyong.com/algorithm/encryption/01-intro.html)
|
> [常见加密解密算法介绍](https://www.yijiyong.com/algorithm/encryption/01-intro.html)
|
||||||
> [相关概念](https://blog.csdn.net/OrangeJack/article/details/82913804)
|
> [相关概念](https://blog.csdn.net/OrangeJack/article/details/82913804)
|
||||||
* AES
|
* AES
|
||||||
|
> transformation默认实现AES/ECB/PKCS5Padding
|
||||||
```
|
```
|
||||||
* @param data 传入的原始数据
|
|
||||||
* @param key AES加密的key
|
|
||||||
* @param transformation AES加密的方式 例如AES/ECB/PKCS5Padding
|
|
||||||
* @param iv ECB模式的偏移向量
|
|
||||||
java.aesDecodeToString(str: String, key: String, transformation: String, iv: String)
|
java.aesDecodeToString(str: String, key: String, transformation: String, iv: String)
|
||||||
|
|
||||||
java.aesBase64DecodeToString(str: String, key: String, transformation: String, iv: String)
|
java.aesBase64DecodeToString(str: String, key: String, transformation: String, iv: String)
|
||||||
@@ -144,6 +145,7 @@ java.aesEncodeToString(str: String, key: String, transformation: String, iv: Str
|
|||||||
java.aesEncodeToBase64String(str: String, key: String, transformation: String, iv: String)
|
java.aesEncodeToBase64String(str: String, key: String, transformation: String, iv: String)
|
||||||
```
|
```
|
||||||
* DES
|
* DES
|
||||||
|
> transformation默认实现DES/ECB/PKCS5Padding
|
||||||
```
|
```
|
||||||
java.desDecodeToString(str: String, key: String, transformation: String, iv: String)
|
java.desDecodeToString(str: String, key: String, transformation: String, iv: String)
|
||||||
|
|
||||||
@@ -154,23 +156,25 @@ java.desEncodeToString(str: String, key: String, transformation: String, iv: Str
|
|||||||
java.desEncodeToBase64String(str: String, key: String, transformation: String, iv: String)
|
java.desEncodeToBase64String(str: String, key: String, transformation: String, iv: String)
|
||||||
```
|
```
|
||||||
* 3DES
|
* 3DES
|
||||||
|
> tansformation默认实现DESede/ECB/PKCS5Padding
|
||||||
```
|
```
|
||||||
* @param data 被加密的字符串
|
|
||||||
* @param key 密钥
|
|
||||||
* @param mode 模式 ECB/CBC/CFB/OFB/CTR
|
|
||||||
* @param padding 补码方式 NoPadding/PKCS5Padding/
|
|
||||||
* @param iv 加盐
|
|
||||||
java.tripleDESEncodeBase64Str(data: String,key: String,mode: String,padding: String,iv: String): String?
|
java.tripleDESEncodeBase64Str(data: String,key: String,mode: String,padding: String,iv: String): String?
|
||||||
|
|
||||||
java.tripleDESDecodeStr(data: String,key: String,mode: String,padding: String,iv: String): String?
|
java.tripleDESDecodeStr(data: String,key: String,mode: String,padding: String,iv: String): String?
|
||||||
```
|
```
|
||||||
* 摘要
|
* 摘要
|
||||||
|
> algorithm支持MD2 MD5 SHA-1 SHA-256 SHA-384 SHA-512
|
||||||
```
|
```
|
||||||
* @param data 被摘要数据
|
java.digestHex(data: String, algorithm: String,): String?
|
||||||
* @param algorithm 签名算法 MD5/SHA1/SHA256/SHA512
|
|
||||||
java.digestHex(data: String,algorithm: String,): String?
|
|
||||||
|
|
||||||
java.digestBase64Str(data: String,algorithm: String,): String?
|
java.digestBase64Str(data: String, algorithm: String,): String?
|
||||||
|
```
|
||||||
|
* HMac(散列消息鉴别码)
|
||||||
|
> algorithm支持HmacMD5 HmacSHA1 HmacSHA224 HmacSHA256 HmacSHA384 HmacSHA512
|
||||||
|
```
|
||||||
|
java.HMacHex(data: String, algorithm: String, key: String): String
|
||||||
|
|
||||||
|
java.HMacBase64(data: String, algorithm: String, key: String): String
|
||||||
```
|
```
|
||||||
* md5
|
* md5
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
* 修复部分txt章节结尾乱码bug
|
* 修复部分txt章节结尾乱码bug
|
||||||
* 优化翻页流畅度
|
* 优化翻页流畅度
|
||||||
|
* js添加des HMac
|
||||||
|
* 登录ui用户信息默认加密方式改变,需要重新登录
|
||||||
|
|
||||||
**2022/05/21**
|
**2022/05/21**
|
||||||
|
|
||||||
@@ -322,4 +324,4 @@ eval(String(java.cacheFile(url)))
|
|||||||
**2022/01/01**
|
**2022/01/01**
|
||||||
|
|
||||||
* 修复本地txt问题,不在拷贝到私有目录,可以正常打开
|
* 修复本地txt问题,不在拷贝到私有目录,可以正常打开
|
||||||
* 优化txt目录识别,取目录数量最多的规则
|
* 优化txt目录识别,取目录数量最多的规则
|
||||||
|
|||||||
@@ -947,7 +947,7 @@ interface JsExtensions {
|
|||||||
)?.let { String(it) }
|
)?.let { String(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
//******************消息摘要************************//
|
//******************消息摘要/散列消息鉴别码************************//
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成摘要,并转为16进制字符串
|
* 生成摘要,并转为16进制字符串
|
||||||
@@ -977,6 +977,38 @@ interface JsExtensions {
|
|||||||
return Base64.encodeToString(DigestUtils.getDigest(algorithm, data.toByteArray()), Base64.NO_WRAP)
|
return Base64.encodeToString(DigestUtils.getDigest(algorithm, data.toByteArray()), Base64.NO_WRAP)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成散列消息鉴别码,并转为16进制字符串
|
||||||
|
*
|
||||||
|
* @param data 被摘要数据
|
||||||
|
* @param algorithm 签名算法
|
||||||
|
* @param key 密钥
|
||||||
|
* @return 16进制字符串
|
||||||
|
*/
|
||||||
|
fun HMacHex(
|
||||||
|
data: String,
|
||||||
|
algorithm: String,
|
||||||
|
key: String
|
||||||
|
): String {
|
||||||
|
return DigestUtils.getHMac(algorithm, key, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生成散列消息鉴别码,并转为Base64字符串
|
||||||
|
*
|
||||||
|
* @param data 被摘要数据
|
||||||
|
* @param algorithm 签名算法
|
||||||
|
* @param key 密钥
|
||||||
|
* @return Base64字符串
|
||||||
|
*/
|
||||||
|
fun HMacBase64(
|
||||||
|
data: String,
|
||||||
|
algorithm: String,
|
||||||
|
key: String
|
||||||
|
): String {
|
||||||
|
return Base64.encodeToString(DigestUtils.getHMac(algorithm, key.toByteArray(), data.toByteArray()), Base64.NO_WRAP)
|
||||||
|
}
|
||||||
|
|
||||||
fun md5Encode(str: String): String {
|
fun md5Encode(str: String): String {
|
||||||
return MD5Utils.md5Encode(str)
|
return MD5Utils.md5Encode(str)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user