21xrx.com
2024-09-20 05:56:40 Friday
登录
文章检索 我的文章 写文章
Java中的AES加密和解密算法
2023-06-17 05:05:02 深夜i     --     --
Java AES加密 AES解密

Java作为一种重要的编程语言,在数据安全方面有着非常重要的作用。其中,AES加密算法是Java中常用的一种加密方式,非常适合处理比较敏感的数据。本文将详细介绍在Java中如何使用AES加密和解密算法。

AES加密和解密算法是一种现代的, 对称式加密算法,它可以以高效的方式保护数据不被未经授权的人员所访问。在Java中,使用AES算法可以通过调用Java Cryptographic Extensions (JCE)提供的API来实现。

一个基本的AES加密和解密示例代码如下:


// 加密方法

public static String encrypt(String key, String value) {

  try {

    byte[] keyBytes = key.getBytes("UTF-8");

    byte[] valueBytes = value.getBytes("UTF-8");

    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

    SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");

    IvParameterSpec ivParameterSpec = new IvParameterSpec(keyBytes);

    cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);

    byte[] encryptedBytes = cipher.doFinal(valueBytes);

    return Base64.getEncoder().encodeToString(encryptedBytes);

  } catch (Exception ex) {

    throw new RuntimeException(ex);

  }

}

// 解密方法

public static String decrypt(String key, String encryptedValue) {

  try {

    byte[] keyBytes = key.getBytes("UTF-8");

    byte[] encryptedBytes = Base64.getDecoder().decode(encryptedValue);

    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

    SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");

    IvParameterSpec ivParameterSpec = new IvParameterSpec(keyBytes);

    cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);

    byte[] decryptedBytes = cipher.doFinal(encryptedBytes);

    return new String(decryptedBytes, "UTF-8");

  } catch (Exception ex) {

    throw new RuntimeException(ex);

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复