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

简介: 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;
  }
  }
}
相关文章
|
12天前
|
算法 安全 Java
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
【4月更文挑战第28天】性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
28 1
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
|
6天前
|
存储 算法 安全
Java工具类
Java工具类
28 5
Java工具类
|
18天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
19天前
|
搜索推荐 算法 Java
Java实现的常用八种排序算法
提到数据结构与算法,无法避免的一点就包含排序,熟练的掌握各种排序算法则是一个程序员必备的素质之一,除此之外,排序算法也是当下各大技术公司比较喜欢问的技术点,所以,就这一点JavaBuild整理了常见的8种排序算法
8 0
|
23天前
|
机器学习/深度学习 数据采集 算法
使用 Java 实现机器学习算法
【4月更文挑战第19天】Java在数据驱动时代为机器学习提供支持,具备丰富的数学和数据结构库,适用于实现线性回归、决策树、SVM和随机森林等算法。实现时注意数据预处理、模型选择、评估指标和可视化。利用Java的库和编程能力可构建高效模型,但需按问题需求选择合适技术和优化方法。
|
23天前
|
监控 安全 Java
【JavaEE多线程】深入解析Java并发工具类与应用实践
【JavaEE多线程】深入解析Java并发工具类与应用实践
33 1
|
算法 Java 数据安全/隐私保护
最新版-Python和Java实现Aes相互加解密
最新版-Python和Java实现Aes相互加解密
196 0
|
算法 Java 测试技术
Java实现AES ECP PKCS5Padding加解密工具类
Java 实现一个AES/ECB/PKCS5Padding 加解密算法工具类 加密算法: AES 模式: ECB 补码方式: PKCS5Padding
503 0
Java实现AES ECP PKCS5Padding加解密工具类
|
算法 安全 数据安全/隐私保护
Java-AES加解密
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。高级加密标准算法从很多方面解决了令人担忧的问题。实际上,攻击数据加密标准的那些手段对于高级加密标准算法本身并没有效果。如果采用真正的128位加密技术甚至256位加密技术,蛮力攻击要取得成功需要耗费相当长的时间。安全研究人员还没有那么多的时间对这种加密方法进行破解试验。我们可能会随时发现一种全新的攻击手段会攻破这种高级加密标准。至少在理论上存在这种可能性。
406 0