AES-256-CBC是一种对称加密算法,它使用256位的密钥对数据进行加密和解密,并使用CBC模式进行填充。在Java中,可以使用JCE(Java Cryptography Extension)提供的API来实现AES-256-CBC加密和解密。
下面是一个简单的Java代码示例,演示如何使用AES-256-CBC加密和解密:
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AesUtil {
private static final String KEY_ALGORITHM = "AES";
private static final String CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding";
private static final String CHARSET_NAME = "UTF-8";
private static final String IV = "1234567890abcdef"; // 16 bytes initialization vector
public static String encrypt(String plainText, String key) throws Exception {
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(CHARSET_NAME), KEY_ALGORITHM);
IvParameterSpec iv = new IvParameterSpec(IV.getBytes(CHARSET_NAME));
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
byte[] encryptedBytes = cipher.doFinal(plainText.getBytes(CHARSET_NAME));
return Base64.getEncoder().encodeToString(encryptedBytes);
public static String decrypt(String cipherText, String key) throws Exception {
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(CHARSET_NAME), KEY_ALGORITHM);
IvParameterSpec iv = new IvParameterSpec(IV.getBytes(CHARSET_NAME));
Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);
byte[] cipherBytes = Base64.getDecoder().decode(cipherText);
byte[] decryptedBytes = cipher.doFinal(cipherBytes);
return new String(decryptedBytes, CHARSET_NAME);
在上面的代码中,encrypt
方法接受一个明文和一个密钥作为输入,并返回使用AES-256-CBC算法加密后的Base64编码字符串。decrypt
方法接受一个密文和一个密钥作为输入,并返回解密后的明文字符串。
在使用该代码之前,请确保您已经正确安装并配置了Java Cryptography Extension (JCE)。您还需要选择一个合适的密钥,并确保您在不同的应用程序中使用不同的密钥来保持安全性。
希望这个代码示例能帮助您理解如何在Java中使用AES-256-CBC算法进行加密和解密。如果您有任何问题,请随时与我联系。