记一下AES加密工具类
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.tomcat.util.codec.binary.Base64;
public class AESUtils {
/**
* 默认编码
*/
private static final String CHARSET = "utf-8";
/**
* 密钥算法
*/
private static final String ALGORITHM = "AES";
/**
* 加解密算法/工作模式/填充方式
*/
private static final String ALGORITHM_STR = "AES/ECB/PKCS5Padding";
/**
* AES加密字符串
*
* @param data 待加密字符串
* @param AESKey 解密密钥
* @return 加密后内容
*/
public static String encrypt(String data, String AESKey) {
try {
Cipher cipher = Cipher.getInstance(ALGORITHM_STR); // 创建密码器
SecretKeySpec key = new SecretKeySpec(AESKey.getBytes(CHARSET), ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
byte[] encryptResult = cipher.doFinal(data.getBytes(CHARSET)); // 加密后接口
Base64 base64 = new Base64();
return new String(base64.encode(encryptResult), CHARSET);
} catch (Exception e) {
System.out.println(e);
}
return null;
}
/**
*
* @param content 待解密内容
* @param AESKey 解密密钥
* @return
*/
public static String decrypt(String content, String AESKey) {
try {
SecretKeySpec key = new SecretKeySpec(AESKey.getBytes(CHARSET), ALGORITHM);
Cipher cipher = Cipher.getInstance(ALGORITHM_STR);
cipher.init(Cipher.DECRYPT_MODE, key);
Base64 base64 = new Base64();
byte[] result = cipher.doFinal(base64.decode(content));
return new String(result,CHARSET); // 解密
} catch (Exception e) {
System.out.println(e);
}
return null;
}
}