import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class AESUtil {
private static final String SECRET_KEY = "2A0F1ABC33BA4A53AFB2DD6F7E159EA9";
private static final AES aes = new AES(Mode.ECB, Padding.PKCS5Padding,
SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue(), SECRET_KEY.getBytes()));
/**
* 加密
*
* @param content
* @return
*/
public static String encryptHex(String content) {
// 加密
byte[] encrypt = aes.encrypt(content);
// 加密为16进制表示
String encryptHex = aes.encryptHex(content);
return encryptHex;
}
/**
* 解密
*
* @param encryptHex
* @return
*/
public static String decryptHex(String encryptHex) {
// 解密为字符串
String decryptStr = null;
try {
decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
}catch (Exception e){
log.warn("AES decrypt failed, msg:" + e.getMessage());
decryptStr = encryptHex;
}
return decryptStr;
}
}
AESUtils工具
于 2024-03-05 17:54:48 首次发布
本文介绍了如何使用Hutool库中的AESUtil类进行AES加密和解密操作,主要涉及ECB模式和PKCS5Padding,以及使用给定的密钥进行加密/解密字符串并转换为16进制格式。
摘要由CSDN通过智能技术生成