PHP 使用 openssl 解密 java AES 加密的问题
加密后的数据:
GngBIjZhxao70NLUe5jt5RzDrn9BGVbOfvCz1HA8N/yIv2euCx5TxpUW/3hL3nZrJJFhqIIaSKOVLXXyaaMGC9+mpMXXe1L1RsTjbn7gtlQ37WuQDETEHjH4HZDrS8BspvlFRyuyHFq2Cba4owo49Ju7cfbmwDtfKu2TSKqPI0LaGMKz8S8bcEHmDB8qnS75
加密前的参数:
String account = "casl";
String password = "123456";
String startTime = "20200510173200";
String endTime = "20200513173200"; 」
key = 91DB24611B13DF18862ACEB2AE8370E9
iv = D1F07625B8E04A5D
java加密方法代码:
public static String encrypt(String content, String dataPassword)
throws Exception {
IvParameterSpec zeroIv = new IvParameterSpec(VIPARA.getBytes());
SecretKeySpec key = new SecretKeySpec(dataPassword.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);
byte[] encryptedData = cipher.doFinal(content.getBytes(bm));
return Base64.encode(encryptedData);
}
问题:
我现在需要使用php的 openssl 对上面的密文进行解密,现在问题是试过很多方法都是false。
$str = openssl_decrypt("GngBIjZhxao70NLUe5jt5RzDrn9BGVbOfvCz1HA8N/yIv2euCx5TxpUW/3hL3nZrJJFhqIIaSKOVLXXyaaMGC9+mpMXXe1L1RsTjbn7gtlQ37WuQDETEHjH4HZDrS8BspvlFRyuyHFq2Cba4owo49Ju7cfbmwDtfKu2TSKqPI0LaGMKz8S8bcEHmDB8qnS75", 'AES-128-CBC', "91DB24611B13DF18862ACEB2AE8370E9", OPENSSL_ZERO_PADDING, "D1F07625B8E04A5D");
dd($str);
// 现在打印的str是下面的值;这是解密成了吗?成了的话下一步如何操作?没成的话,怎么解密?
// b"╬[SELD3?╣\x10Ö\x02▓µ\x06þy³)}0Ͻtù\x1C┬■ÙõJ\x15╣│\x06(,Sp■ß?‗\x02Ûì\x06Ùw┐æ╦]Æ\x19\x11¿VþEF▀:\x16ºT¢\x05ø▀\x1Fmûr©¿¸9Þ\v╩Ó@\x1Côº6x7ôƒ^\x0E0o╝ÒZ╝Ñ£W\x06ıÚÝÜbÿÉsñ\fú▀¡£\x05§0\x02°\x08/4─Jù3¿╝1ê»│ö¤ v\x02\x04¸ÿ, ◀"
openssl_decrypt($str, 'AES-256-CBC', "91DB24611B13DF18862ACEB2AE8370E9", OPENSSL_RAW_DATA, "D1F07625B8E04A5D");