AES加密128位CBC模式工具类
/**
* AES加密128位CBC模式工具类
* @author 莴苣社区
* @date 2024年04月19日
* @description
*/
public class AESUtil {
// 模式
public static final String MODEL = "AES/ECB/PKCS5Padding";
// 加密方式
public static final String AES = "AES";
//密钥key
public static final String KEY = "6e0b71112d551c03ba485cd3";
/**
* 加密
* @author 莴苣社区
* @date 2024/4/22 10:57
* @param value 明文
* @return String
*/
public static String encode(String value) {
try {
Cipher cipher = Cipher.getInstance(MODEL);
SecretKeySpec secretKeySpec = new SecretKeySpec(KEY.getBytes(StandardCharsets.UTF_8), AES);
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
byte[] bytes = cipher.doFinal(value.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(bytes);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 解密
* @author 莴苣社区
* @date 2024/4/19 14:28
* @param value 密文
* @return String
*/
public static String decode(String value) {
try {
Cipher cipher = Cipher.getInstance(MODEL);
SecretKeySpec secretKeySpec = new SecretKeySpec(KEY.getBytes(), AES);
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] bytes = cipher.doFinal(Base64.getDecoder().decode(value));
return new String(bytes, StandardCharsets.UTF_8);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
System.out.println(encode("1234567890abcdef"));
}
}
正文到此结束