java aes 解密
时间: 2024-11-30 19:12:10 浏览: 11
AES解密工具(java)
Java中的AES解密可以通过javax.crypto包中的Cipher类实现。具体步骤如下:
1. 创建Cipher对象,指定算法为AES,模式为CBC,填充方式为PKCS5Padding。
2. 创建SecretKeySpec对象,指定密钥和算法。
3. 创建IvParameterSpec对象,指定IV向量。
4. 调用Cipher对象的init方法,传入解密模式、密钥和IV向量。
5. 调用Cipher对象的doFinal方法,传入待解密的密文,返回明文。
示例代码如下:
```
import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class AESUtil {
private static final String ALGORITHM = "AES/CBC/PKCS5Padding";
private static final String CHARSET = "UTF-8";
public static String decrypt(String encryptedData, String key, String iv) throws Exception {
byte[] keyBytes = key.getBytes(CHARSET);
byte[] ivBytes = iv.getBytes(CHARSET);
byte[] encryptedBytes = Base64.getDecoder().decode(encryptedData);
SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivParameterSpec = new IvParameterSpec(ivBytes);
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
byte[] decryptedBytes = cipher.doFinal(encryptedBytes);
return new String(decryptedBytes, CHARSET);
}
}
```
其中,encryptedData为待解密的密文,key为密钥,iv为IV向量。调用decrypt方法即可返回解密后的明文。
阅读全文