引入依赖
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.69</version>
</dependency>
package com.ocrweb.util;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.AlgorithmParameters;
import java.security.Key;
import java.security.Security;
import java.util.Base64;
public class AesHelper {
private static boolean hasInited = false;
public static void init() {
if (hasInited) {
return;
}
Security.addProvider(new BouncyCastleProvider());
hasInited = true;
}
public static void main(String[] args) {
String session_key = "gQoIRc5n3qWgqBePwT2prQ==";
String iv = "VzE1kg8Xc1G/FanPceiBSg==";
String encryptData = "0b113c76cOI5RfUWo4aAlI+CdZKP+M0Y4wBaSKhTsanQeB2jvPkaHroGNVoxx5nLS3jpfyOMj/hEtzAb17aMd/hBKGqlTTTCmpw6iguoDLEevG54Y1i6AmiUuc5R67RTiMF6f82ilH1G74KHBrA2A/FK2w/isqp1Jggo0QW1GH3EC/dHnk5ihNCJfsb6xXhbMdfGZkMzEe7TQW6AGzRLDkV7GpJqryUgu5K2fg8RpSZxerGAcYdEOb7O3fVM0MciIQL9FjVJ7NbgBV5c1TrFG7GplPF6zHB0tFPMUVmqZqjDqL6DnCQejJk03vAM8hE9yiFrYG5L9wP1NM1gkOx8IFNmwIHNTBUPM/3VjHMNJQQt/pRxGPuoj3VRXrlqMKNo/uVpGuyOWuuwG0bycVZkGOxQ2P8ZwlYWYvhiOCiPMyIoiE55bV/S0c=";
String decrypt = decrypt(session_key, iv, encryptData);
System.out.println(decrypt);
}
public static String decrypt(String session_key, String iv, String encryptData) {
String decryptString = "";
init();
byte[] sessionKeyByte = Base64.getDecoder().decode(session_key);
byte[] ivByte = Base64.getDecoder().decode(iv);
byte[] encryptDataByte = Base64.getDecoder().decode(encryptData);
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
Key key = new SecretKeySpec(sessionKeyByte, "AES");
AlgorithmParameters algorithmParameters = AlgorithmParameters.getInstance("AES");
algorithmParameters.init(new IvParameterSpec(ivByte));
cipher.init(Cipher.DECRYPT_MODE, key, algorithmParameters);
byte[] bytes = cipher.doFinal(encryptDataByte);
decryptString = new String(bytes);
} catch (Exception e) {
e.printStackTrace();
}
return decryptString;
}
}
评论区