java aes加密解密
时间: 2024-10-11 12:14:13 浏览: 83
简单的java加密解密类
4星 · 用户满意度95%
在Java中,AES(Advanced Encryption Standard)是一种常用的对称加密算法,用于保护数据的安全性和隐私性。以下是使用Java进行AES加密和解密的基本步骤:
**加密(Encryption)**:
1. 导入必要的库:
```java
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
```
2. 创建 SecretKey 对象,提供密钥:
```java
byte[] keyBytes = "your_secret_key".getBytes(); // 替换为你的128、192或256位密钥
SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");
```
3. 初始化 Cipher 对象并选择模式(ENCRYPT_MODE):
```java
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
```
4. 加密数据:
```java
byte[] dataToEncrypt = "your_data_to_encrypt".getBytes();
byte[] encryptedData = cipher.doFinal(dataToEncrypt);
```
5. 返回 Base64 编码的字符串,便于存储或传输:
```java
String encodedEncryptedData = Base64.getEncoder().encodeToString(encryptedData);
```
**解密(Decryption)**:
1. 将Base64编码的字符串还原成字节数组:
```java
byte[] decodedEncodedData = Base64.getDecoder().decode(encodedEncryptedData);
```
2. 使用相同的 SecretKeySpec 和 Cipher 进行解密:
```java
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
byte[] decryptedData = cipher.doFinal(decodedEncodedData);
```
3. 最终得到解密后的原始数据:
```java
String decryptedDataStr = new String(decryptedData);
```
阅读全文