原创

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"));
    }
}
正文到此结束