| 程序包 | 说明 |
|---|---|
| cn.hutool.crypto |
加密解密模块,实现了对JDK中加密解密算法的封装,入口为SecureUtil,实现了:
1.
|
| cn.hutool.crypto.symmetric |
对称加密算法实现,包括AES、DES、DESede等
|
| 限定符和类型 | 方法和说明 |
|---|---|
static SymmetricCrypto |
SmUtil.sm4(byte[] key)
SM4加密
例: SM4加密:sm4(key).encrypt(data) SM4解密:sm4(key).decrypt(data) |
| 限定符和类型 | 方法和说明 |
|---|---|
static String |
SecureUtil.signParams(SymmetricCrypto crypto,
Map<?,?> params,
String... otherParams)
对参数做签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值 |
static String |
SecureUtil.signParams(SymmetricCrypto crypto,
Map<?,?> params,
String separator,
String keyValueSeparator,
boolean isIgnoreNull,
String... otherParams)
对参数做签名
参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串 |
| 限定符和类型 | 类和说明 |
|---|---|
class |
AES
AES加密算法实现
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法 对于Java中AES的默认模式是:AES/ECB/PKCS5Padding,如果使用CryptoJS,请调整为:padding: CryptoJS.pad.Pkcs7 相关概念说明: mode: 加密算法模式,是用来描述加密算法(此处特指分组密码,不包括流密码,)在加密时对明文分组的模式,它代表了不同的分组方式 padding: 补码方式是在分组密码中,当明文长度不是分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组的长度。 |
class |
DES
DES加密算法实现
DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法 Java中默认实现为:DES/CBC/PKCS5Padding |
class |
DESede
DESede是由DES对称加密算法改进后的一种对称加密算法,又名3DES、TripleDES。
|
class |
SM4
SM4实现
|
| 限定符和类型 | 方法和说明 |
|---|---|
SymmetricCrypto |
SymmetricCrypto.init(String algorithm,
SecretKey key)
初始化
|
SymmetricCrypto |
SymmetricCrypto.setIv(byte[] iv)
设置偏移向量
|
SymmetricCrypto |
SymmetricCrypto.setIv(IvParameterSpec iv)
设置偏移向量
|
SymmetricCrypto |
SymmetricCrypto.setParams(AlgorithmParameterSpec params)
设置
AlgorithmParameterSpec,通常用于加盐或偏移向量 |
Copyright © 2020. All rights reserved.