复制
收藏
提问
简洁
springboot AES加密解密通用类代码生成数字
2周前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
- 在Spring Boot中实现AES加密解密的通用类代码,可以生成数字形式的密钥。
AES加密解密通用类
- 生成AES密钥:使用
KeyGenerator
类生成AES密钥,通常选择128、192或256位作为密钥长度。 - 加密过程:通过
Cipher
类的实例,使用init
方法设置加密模式和密钥,然后调用doFinal
方法对数据进行加密。 - 解密过程:与加密过程类似,但使用解密模式初始化
Cipher
对象,最后同样调用doFinal
方法完成解密。
代码示例
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.security.SecureRandom;
import java.util.Base64;
public class AesUtil {
private static final String AES = "AES";
private static final String AES_ALGORITHM = "AES/ECB/PKCS5Padding";
// 生成AES密钥
public static SecretKey generateAESKey(int keySize) throws Exception {
KeyGenerator keyGenerator = KeyGenerator.getInstance(AES);
keyGenerator.init(keySize, new SecureRandom());
return keyGenerator.generateKey();
}
// AES加密
public static String encryptAES(String data, SecretKey key) throws Exception {
Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] encryptedData = cipher.doFinal(data.getBytes());
return Base64.getEncoder().encodeToString(encryptedData);
}
// AES解密
public static String decryptAES(String encryptedData, SecretKey key) throws Exception {
Cipher cipher = Cipher.getInstance(AES_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decryptedData = cipher.doFinal(Base64.getDecoder().decode(encryptedData));
return new String(decryptedData);
}
}
- 要点总结:上述代码展示了如何在Spring Boot项目中创建一个AES加密解密的通用类。首先,通过
generateAESKey
方法生成一个AES密钥;然后,使用encryptAES
和decryptAES
方法分别
你觉得结果怎么样?