java AES加密解密
时间: 2024-10-31 18:05:19 浏览: 35
Java AES加密解密的简单实现方法
AES (Advanced Encryption Standard) 是一种对称加密算法,常用于保护数据的安全传输。在 Java 中,你可以使用 javax.crypto.Cipher 类以及 javax.crypto.spec.SecretKeySpec 来实现 AES 加密和解密。以下是简单的步骤:
1. **密钥生成**:
- 使用 SecretKeyFactory 实例创建 SecretKey,比如从 Base64 编码的密码字符串转换而来。
```java
byte[] keyBytes = "your_secret_key".getBytes(StandardCharsets.UTF_8);
SecretKey secretKey = SecretKeyFactory.getInstance("AES").generateSecret(new PBEKeySpec(keyBytes));
```
2. **初始化 Cipher 对象**:
- 根据加密模式(如 ENCRYPT_MODE 或 DECRYPT_MODE)和填充模式选择 AlgorithmParameterSpec。
```java
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
IvParameterSpec iv = new IvParameterSpec(keyBytes); // 如果是 CBC 模式需要一个初始向量
cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
```
3. **加解密操作**:
- 加密时,使用 cipher.doFinal(input);
- 解密时,先用 cipher.init(Cipher.DECRYPT_MODE, secretKey, iv),再用 cipher.doFinal(ciphertext)。
```java
byte[] encrypted = cipher.doFinal(plaintext); // 加密
byte[] decrypted = cipher.doFinal(encrypted); // 解密
```
阅读全文