SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES"); try { Cipher cipher = Cipher.getInstance("AES"); cipher.init(1, secretKey); byte[] encodeBase64 = Base64.encodeBase64(content.getBytes("utf-8")); byte[] result = cipher.doFinal(encodeBase64); String hexString = Hex.encodeHexString(result); return hexString; } catch (Exception var7) { log.error("AES加密 - 异常", var7); return null; } 如何进行解密
时间: 2024-02-14 16:32:29 浏览: 30
要进行解密,您需要相应的解密方法。下面是一个示例代码来演示如何使用AES解密:
```java
public static String decrypt(String encryptedText, String key) {
try {
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decodedHex = Hex.decodeHex(encryptedText.toCharArray());
byte[] decryptedBase64 = cipher.doFinal(decodedHex);
byte[] decodedBytes = Base64.decodeBase64(decryptedBase64);
return new String(decodedBytes, "UTF-8");
} catch (Exception e) {
log.error("AES解密 - 异常", e);
return null;
}
}
```
这段代码使用了与加密过程类似的步骤来进行解密:
1. 创建一个`SecretKeySpec`对象,用于存储密钥。
2. 获取一个AES加密算法的实例。
3. 初始化Cipher对象,指定解密模式(`Cipher.DECRYPT_MODE`)和密钥。
4. 将加密后的十六进制字符串转换为字节数组,使用`Hex.decodeHex()`方法。
5. 对字节数组进行解密操作,得到解密后的字节数组。
6. 对解密后的字节数组进行Base64解码,得到原始字节数组。
7. 使用UTF-8编码将字节数组转换为字符串,并返回解密结果。
如果在解密过程中出现异常,会记录错误日志并返回null。