// AES加密
public String encrypt_AES(String source, String key) throws Exception {
if (key == null) {
return null;
}
// 判断key是否为16位
if (key.length() != 16) {
return null;
}
byte[] raw = key.getBytes();
SecretKey keySpec = new SecretKeySpec(raw, "AES");
// 算法/模式/补码方式
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
// 使用CBC模式,需要一个向量,可增加算法的强度
IvParameterSpec iv = new IvParameterSpec("0102030405060708".getBytes());
cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
byte[] encrypted = cipher.doFinal(source.getBytes());
return Base64.encodeToString(encrypted, Base64.DEFAULT);
}
// AES解密
public String decrypt_AES(String resource, String key) throws Exception {
try {
// 判断key是否正确
if (key == null) {
return null;
}
if (key.length() != 16) {
return null;
}
byte[] raw = key.getBytes("ASCII");
兔子--AES加密,解密算法
最新推荐文章于 2022-04-14 21:51:24 发布
该博客详细展示了如何使用AES加密算法进行数据加密和解密。提供了完整的Java代码示例,包括加密和解密方法,使用了CBC模式并结合PKCS5Padding填充,确保了加密的安全性。
摘要由CSDN通过智能技术生成