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天前
|
算法 Java 机器人
Java数据结构与算法:AVL树
Java数据结构与算法:AVL树
|
2天前
|
算法 Java Linux
Java数据结构与算法:红黑树
Java数据结构与算法:红黑树
|
2天前
|
存储 人工智能 算法
Java数据结构与算法:邻接矩阵和邻接表
Java数据结构与算法:邻接矩阵和邻接表
|
2天前
|
算法 Java 机器人
Java数据结构与算法:最大堆
Java数据结构与算法:最大堆
|
2天前
|
算法 Java 机器人
Java数据结构与算法:并发数据结构ConcurrentHashMap
Java数据结构与算法:并发数据结构ConcurrentHashMap
|
2天前
|
算法 Java 机器人
Java数据结构与算法:最小堆
Java数据结构与算法:最小堆
|
2天前
|
算法 网络协议 Java
我的Java数据结构和算法
我的Java数据结构和算法
7 0
|
11天前
|
Java
排名前16的Java工具类
排名前16的Java工具类
9 0
|
Java
排名前16的Java工具类
排名前16的Java工具类
162 0
排名前 16 的 Java 工具类,哪个你没用过?
在Java中,实用程序类是定义一组执行通用功能的方法的类。 这篇文章展示了最常用的Java实用工具类及其最常用的方法。类列表及其方法列表均按受欢迎程度排序。数据基于从GitHub随机选择的50,000个开源Java项目。 希望您可以通过浏览列表来了解