本文参考了大量的博客,其中这篇博客参考了大部分内容:java实现多种加密模式的AES算法-总有一种你用的着
以下代码,修改一下包名,添加以下apache-commons包即可运行。
package com.eastcom.bbf.bs.management.util;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class AesUtil {
/**
* randomSourceLength:随机源长度.
*
* @since JDK 1.8
*/
@Value("${time.science.random.source.length}")
private int randomSourceLength = 128;
public static final String CIPHER_MODE_ECB_PKCS5PADDING = "AES/ECB/PKCS5Padding";
public static final String CIPHER_MODE_ECB_PKCS7PADDING = "AES/ECB/PKCS7Padding";
public static final String CIPHER_MODE_CBC_PKCS5PADDING = "AES/CBC/PKCS5Padding";
public static final String ENCRY_ALG = "AES";
public static final String ENCODE_NAME_UTF8 = "utf-8";
// ======================== AES/ECB/PKCSNPadding ==============
/**
* aesEcbPkcsNPaddingEncrypt:AES,ECB无向量加密. <br/>
*
* @author atc
* @param password
*