Hutool中AES加密算法类是`AES`,它位于`cn.hutool.crypto.symmetric`包下。以下是一个简单使用`AES`类进行加密和解密的示例代码: ```java import cn.hutool.crypto.symmetric.AES; import cn.hutool.core.codec.Base64; public class HutoolAESExample { public static void main(String[] args) { // 待加密的明文 String plaintext = "Hello, Hutool AES!"; // 密钥,AES要求密钥长度为16、24或32字节 byte[] key = "0*abcdef".getBytes(); // 创建AES对象 AES aes = new AES("CBC", "PKCS5Padding", key, "0*abcdef".getBytes()); // 加密操作 byte[] encryptedBytes = aes.encrypt(plaintext); // 将加密后的字节数组转换为Base64字符串 String encryptedBase64 = Base64.encode(encryptedBytes); System.out.println("加密后的Base64字符串: " + encryptedBase64); // 解密操作 byte[] decryptedBytes = aes.decrypt(Base64.decode(encryptedBase64)); String decryptedText = new String(decryptedBytes); System.out.println("解密后的明文: " + decryptedText); } } ``` 代码注释解释: 1. 引入`AES`类和`Base64`类,`AES`类用于加密和解密操作,`Base64`类用于将字节数组转换为Base64字符串。 2. 定义待加密的明文和密钥,AES要求密钥长度为16、24或32字节。 3. 创建`AES`对象,指定加密模式、填充方式、密钥和初始化向量。 4. 使用`encrypt`方法对明文进行加密,得到加密后的字节数组。 5. 使用`Base64.encode`方法将加密后的字节数组转换为Base64字符串。 6. 使用`decrypt`方法对Base64字符串进行解密,得到解密后的字节数组。 7. 将解密后的字节数组转换为字符串并输出。 额外需要注意的逻辑点: 1. 密钥长度必须为16、24或32字节,否则会抛出异常。 2. 加密模式和填充方式的选择要根据实际需求进行调整。 3. 初始化向量(IV)在CBC模式下是必需的,且长度必须为16字节。 [2025-06-17 13:56:03 | AI写代码神器 | 594点数解答]