aes加密解密java
时间: 2024-08-30 08:00:25 浏览: 49
AES JS加密JAVA解密
AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,广泛用于数据保护和网络安全。在Java中,我们可以使用`javax.crypto`包提供的API来进行AES加密和解密操作。以下是一个简单的示例:
**加密过程(使用SecretKey):**
```java
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public byte[] encrypt(String plainText, String key, String iv) throws Exception {
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes());
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivSpec);
return cipher.doFinal(plainText.getBytes());
}
```
**解密过程(同样使用SecretKey):**
```java
public String decrypt(byte[] encryptedData, String key, String iv) throws Exception {
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "AES");
IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes());
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivSpec);
return new String(cipher.doFinal(encryptedData));
}
```
**相关问题--:**
1. AES加密何时需要使用初始化向量(IV)?
2. 如何安全地存储和传递密钥和IV信息?
3. Java中如何处理AES加密过程中可能出现的异常情况?
阅读全文