hutool加密算法
时间: 2025-02-05 08:01:31 浏览: 71
### Hutool 加密算法使用示例
#### SM4加密解密实例
对于国密SM4算法的应用,在Hutool库中有简洁明了的支持。下面是一个简单的例子来展示如何利用该库实现SM4的加密与解密操作。
```java
// 导入必要的类
import cn.hutool.crypto.symmetric.SM4;
public class Sm4Example {
public static void main(String[] args) throws Exception {
// 初始化SM4对象并指定工作模式(CBC/ECB),填充方式(PKCS7Padding/NoPadding)
SM4 sm4 = new SM4(SM4.Mode.CBC, SM4.Padding.PKCS7Padding);
// 设置16字节长度的秘密钥匙以及偏移向量IV(仅当采用CBC模式时)
byte[] keyBytes = "这是我的秘密钥匙".getBytes("UTF-8");
byte[] ivBytes = "初始向量可以为空".getBytes("UTF-8");
// 执行设置动作
sm4.setKey(keyBytes);
if (null != ivBytes && ivBytes.length > 0){
sm4.setIv(ivBytes);
}
// 待处理的数据字符串
String dataToEncrypt = "待加密的信息";
// 进行Base64编码后的加密过程
String encryptedData = sm4.encryptBase64(dataToEncrypt);
System.out.println("Encrypted Data: " + encryptedData);
// 解码已加密的内容回原文本形式
String decryptedData = sm4.decryptStr(encryptedData);
System.out.println("Decrypted Data: " + decryptedData);
}
}
```
上述代码展示了如何创建`SM4`实例,并通过设定密钥和初始化向量来进行数据的安全转换[^2]。
#### AES加密解密实例
除了支持国产标准外,Hutool同样提供了对国际通用AES算法的良好封装:
```java
// 同样先导入所需包
import cn.hutool.crypto.symmetric.SymmetricCrypto;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
public class AesExample {
public static void main(String[] args) {
// 创建一个新的SymmetricCrypto对象用于AES加解密
SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES,
"这里填写32位十六进制表示法的密钥".getBytes());
// 定义要被保护的消息体
String message = "需要保密的重要资料";
// 对消息执行加密运算得到base64格式的结果串
String cipherText = aes.encryptBase64(message);
System.out.println("Cipher Text: " + cipherText);
// 将获得的密文重新解析还原成原始文本
String plainText = aes.decryptStr(cipherText);
System.out.println("Plain Text : " + plainText);
}
}
```
这段程序说明了怎样借助于预定义好的工具函数完成从纯文本到密文再返回的过程[^3]。
阅读全文
相关推荐




















