package com.jimi.tracker.util;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.util.Base64;
/**
* Description:
* <p>
* AESUtil加密
* </p>
*
* @Author: leo.xiong
* @CreateDate: 2023/8/31 19:56
* @Email: [email protected]
* @Since:
*/
public class AESUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(AESUtil.class);
private static final String AES = "AES";
/**
* AES:加密方式 CBC:工作模式 PKCS5Padding:填充模式
*/
private static final String CBC_PKCS5_PADDING = AES + "/CBC/PKCS5Padding";
/**
* AES:加密方式 ECB:工作模式 PKCS5Padding:填充模式
*/
public static final String AES_ECB_PKCS_5_PADDING = AES + "/ECB/PKCS5Padding";
public static String generateKey() throws Exception {
return generateKey(null);
}
/**
* 生成公钥
*
* @return
* @throws Exception
*/
public static String generateKey(String key) throws Exception {
// 生成密钥
KeyGenerator keyGenerator = KeyGenerator.getInstance(AES);
if (StringUtils.isNotEmpty(key)) {
keyGenerator.init(128, new SecureRandom(key.getBytes()));
} else {
keyGenerator.init(128);
}
SecretKey secretKey = keyGenerator.generateKey();
return new String(
JAVA AES加密工具类
最新推荐文章于 2025-07-01 11:57:51 发布