hutool加密
时间: 2025-05-08 19:20:37 浏览: 15
### Hutool库中的AES加密功能
Hutool 是一个非常实用的 Java 工具包,提供了许多便捷的方法来处理日常开发中的常见需求。其中,`CryptoUtil` 类封装了许多常见的加解密算法,包括 AES。
以下是基于 Hutool 库实现 AES 加密和解密的一个完整示例:
#### Maven 依赖配置
在项目中引入 Hutool 的依赖:
```xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.6</version>
</dependency>
```
#### 示例代码:AES 加密与解密
以下是一个完整的 AES 加密和解密的代码示例[^1]:
```java
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
public class AesExample {
public static void main(String[] args) {
// 定义秘钥(实际应用中应妥善保管)
String key = "1234567890abcdef";
// 初始化AES对象
AES aes = SecureUtil.aes(key.getBytes());
// 待加密的明文
String content = "Hello, Hutool AES!";
// 执行加密操作
byte[] encryptBytes = aes.encrypt(content);
String encryptHexStr = aes.encryptHex(content); // 获取十六进制字符串形式
System.out.println("加密后的数据 (Base64): " + new String(encryptBytes));
System.out.println("加密后的数据 (Hex): " + encryptHexStr);
// 解密操作
String decryptStr = aes.decryptStr(encryptBytes);
String decryptFromHexStr = aes.decryptStr(encryptHexStr, "utf-8");
System.out.println("解密后的数据: " + decryptStr);
System.out.println("从 Hex 字符串解密的数据: " + decryptFromHexStr);
}
}
```
上述代码展示了如何通过 `SecureUtil` 创建 AES 对象并完成加密和解密的操作。具体说明如下:
- **key**: 这里定义了一个简单的 16 字节长度的密钥。实际场景下建议使用更安全的方式生成随机密钥。
- **aes.encrypt() 和 aes.encryptHex()**: 提供两种不同的加密方式,分别返回 Base64 编码的结果以及十六进制编码的结果。
- **aes.decryptStr()**: 支持多种输入格式的解密操作,并指定字符集以确保正确解析原始内容。
#### 关于在线工具验证
如果希望确认加密模式或者测试不同参数下的效果,可以借助一些成熟的在线 AES 加密/解密平台来进行对比分析。不过需要注意的是,在线服务可能无法完全匹配自定义化程度较高的本地环境设置,因此仅作为辅助手段使用。
阅读全文
相关推荐


















