Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现

简介: Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
Cipher.getInstance("AES/ECB/PKCS5Padding");加解密算法
public class CipherUtils {
 
  /**
   * 密钥算法
   */
  private static final String ALGORITHM = "AES";
  /**
   * 加解密算法/工作模式/填充方式
   */
  private static final String ALGORITHM_STR = "AES/ECB/PKCS5Padding";
 
  /**
   * SecretKeySpec类是KeySpec接口的实现类,用于构建秘密密钥规范
   */
  private SecretKeySpec key;
 
  public CipherUtils(String hexKey) {
    key = new SecretKeySpec(hexKey.getBytes(), ALGORITHM);
  }
 
  /**
   * AES加密
   * 
   * @param data
   * @return
   */
  public String encryptData(String data) {
    try {
      Cipher cipher = Cipher.getInstance(ALGORITHM_STR); // 创建密码器
      cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
      return new BASE64Encoder().encode(cipher.doFinal(data.getBytes("utf-8")));
    } catch (Exception e) {
      e.printStackTrace();
      return null;
    }
  }
 
  /**
   * AES解密
   * 
   * @param data
   * @return
   */
  public String decryptData(String data) {
    try {
      Cipher cipher = Cipher.getInstance(ALGORITHM_STR);
      cipher.init(Cipher.DECRYPT_MODE, key);
      return new String(cipher.doFinal(new BASE64Decoder().decodeBuffer(data)), "utf-8");
    } catch (Exception e) {
      e.printStackTrace();
      return null;
    }
  }
 
}
相关文章
|
2月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
90 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
1月前
|
存储 安全 算法
AES算法
【10月更文挑战第30天】AES算法
62 2
|
2月前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
141 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
2月前
|
算法 Java 数据中心
探讨面试常见问题雪花算法、时钟回拨问题,java中优雅的实现方式
【10月更文挑战第2天】在大数据量系统中,分布式ID生成是一个关键问题。为了保证在分布式环境下生成的ID唯一、有序且高效,业界提出了多种解决方案,其中雪花算法(Snowflake Algorithm)是一种广泛应用的分布式ID生成算法。本文将详细介绍雪花算法的原理、实现及其处理时钟回拨问题的方法,并提供Java代码示例。
88 2
|
2月前
|
Java
Java 些许公共工具类
Java 些许公共工具类
17 1
|
2月前
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
121 0
|
4月前
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
28 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
|
4月前
|
Java
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
|
4月前
|
搜索推荐 算法 Java
|
4月前
|
搜索推荐 算法 Java
经典排序算法之-----选择排序(Java实现)
这篇文章通过Java代码示例详细解释了选择排序算法的实现过程,包括算法的基本思想、核心代码、辅助函数以及测试结果,展示了如何通过选择排序对数组进行升序排列。
经典排序算法之-----选择排序(Java实现)