import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.NoSuchAlgorithmException;
/**
* @author Tao
* @Classname KeyUtil
* @Description A
* @Date 2024/2/27
*/
public class AesUtil {
/**
* 密钥
*/
private static final String BASE64_SECRET = "OB5w8xBie20tfb2SptMqdA==";
/**
* aes用来加密解密的byte[]
*/
private final static byte[] SECRET_BYTES = Base64.decode(BASE64_SECRET);
/**
* 根据这个秘钥得到一个aes对象
*/
private final static AES aes = SecureUtil.aes(SECRET_BYTES);
/**
* 加密
* @param str
* @return
*/
public static String encrypt(String str) {
String encrypt = aes.encryptHex(str);
return encrypt;
}
/**
* 解密
* @param str
* @return
*/
public static String decrypt(String str) {
//解密
String decrypt = aes.decryptStr(str);
return decrypt;
}
/**
* 生成一个密钥
* @return
*/
public static String genAesSecret(){
try {
KeyGenerator kg = KeyGenerator.getInstance("AES");
//下面调用方法的参数决定了生成密钥的长度,可以修改为128, 192或256
kg.init(128);
SecretKey sk = kg.generateKey();
byte[] b = sk.getEncoded();
String secret = Base64.encode(b);
return secret;
}
catch (NoSuchAlgorithmException e) {
throw new RuntimeException("没有此算法");
}
}
public static void main(String[] args) {
String djm = "19174085971";
String jiaMi = encrypt(djm);
System.out.println("加密后:" + jiaMi);
String jieMi = decrypt(jiaMi);
System.out.println("解密后:" + jieMi);
System.out.println(genAesSecret());
}
Aes 加密工具类
本文介绍了如何使用Hutool库中的AES加密和解密功能,提供了一个简单的示例,并展示了如何生成AES密钥。
摘要由CSDN通过智能技术生成