Java AES 加密解密工具类实现教程
流程图
pie
title Java AES 加密解密工具类实现流程
"生成密钥" : 20
"加密数据" : 30
"解密数据" : 30
"测试" : 20
步骤
步骤 | 描述 | 代码示例 |
---|---|---|
1 | 生成密钥 | 生成一个密钥并将其存储起来 |
2 | 加密数据 | 使用生成的密钥对数据进行加密 |
3 | 解密数据 | 使用相同的密钥对加密后的数据进行解密 |
4 | 测试 | 验证加密解密功能是否正常 |
代码实现
生成密钥
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class AESUtils {
public static SecretKey generateKey() throws Exception {
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(128); // 生成128位的AES密钥
return keyGen.generateKey();
}
}
加密数据
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESUtils {
public static String encrypt(String data, SecretKey key) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] encryptedData = cipher.doFinal(data.getBytes());
return Base64.getEncoder().encodeToString(encryptedData);
}
}
解密数据
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESUtils {
public static String decrypt(String encryptedData, SecretKey key) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] data = Base64.getDecoder().decode(encryptedData);
byte[] decryptedData = cipher.doFinal(data);
return new String(decryptedData);
}
}
测试
import javax.crypto.SecretKey;
public class Main {
public static void main(String[] args) throws Exception {
// 生成密钥
SecretKey key = AESUtils.generateKey();
// 加密数据
String data = "Hello, World!";
String encryptedData = AESUtils.encrypt(data, key);
// 解密数据
String decryptedData = AESUtils.decrypt(encryptedData, key);
// 验证
System.out.println("原始数据:" + data);
System.out.println("加密后的数据:" + encryptedData);
System.out.println("解密后的数据:" + decryptedData);
}
}
总结
通过以上步骤,你可以实现一个简单的 Java AES 加密解密工具类。首先生成密钥,然后使用密钥对数据进行加密和解密,最后进行测试验证功能是否正常。希望这篇文章能帮助你快速掌握这一技能,加油!