/**
* AES解密
* @param content 密文
* @return
* @throws InvalidAlgorithmParameterException
* @throws NoSuchProviderException
*/
public static byte[] xcx_decrypt(byte[] content, byte[] keyByte, byte[] ivByte) throws InvalidAlgorithmParameterException {
initialize();
try {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
Key sKeySpec = new SecretKeySpec(keyByte, "AES"); cipher.init(Cipher.DECRYPT_MODE, sKeySpec, generateIV(ivByte));// 初始化
byte[] result = cipher.doFinal(content);
return result;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (NoSuchProviderException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
调用方式:
public static void main(String[] args) throws Exception {
byte[] resultByte = AES.xcx_decrypt(Base64.decodeBase64(reqInfoJSONObject.getString("encryptedData")),
Base64.decodeBase64("sessionKey"), Base64.decodeBase64(reqInfoJSONObject.getString("iv")));
String userInfo = new String(resultByte, "UTF-8");
JSONObject userObj = JSONObject.fromObject(userInfo);
logger.info("userInfo ===>" + userInfo);
URLEncoder.encode(userObj.getString("nickName"), "utf-8");
userObj.getString("unionId"); }