wx.getUserInfo 获取的加密数据解密 乱码
解密代码用的官方 稍微修改了下
if (strlen($this->sessionKey) != 24) {
//return ErrorCode::$IllegalAesKey;
return "";
}
$aesKey = base64_decode($this->sessionKey);
if (strlen($iv) != 24) {
//return ErrorCode::$IllegalIv;
return "";
}
$aesIV=base64_decode($iv);
$aesCipher=base64_decode($encryptedData);
$result = openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
return $result;
解密结果就是
这一行看起来很有问题:
$result
= openssl_decrypt( aesKey, 1,
$aesIV
);
aesKey 这里看起来是个常量,但是你的代码似乎没有(也不应该)定义 aesKey 这个常量,这里应该改成 $aesKey 这个变量
openssl_decrypt() 也用错了,PHP 官方文档里 openssl_decrypt() 的介绍如下:
string openssl_decrypt ( string
$data
, string
$method
, string
$key
[, int
$options
= 0 [, string
$iv
=
""
[, string
$tag
=
""
[, string
$aad
=
""
]]]] )
所以你应该是这样写:
$result
= openssl_decrypt(
$aesCipher
,
"AES-128-CBC"
,
$aesKey
, 1,
$aesIV
);