Hellom我有一个奇怪而意外的openssl_decrypt行为
<?php
$method = 'aes256';
$pass = 'sdaf879dsa8f7sdaf87sadf87';
$iv = 'asds9d87fsadf987';
$toEncrypt = array(
'data' => 'toEncrypt',
'time' => time(),
);
$toEncrypt = json_encode($toEncrypt);
echo $toEncrypt . PHP_EOL;
$encrypted = openssl_encrypt($toEncrypt, $method, $pass, false, $iv);
$decrypted = openssl_decrypt($encrypted, $method, $pass, false, $iv);
echo $decrypted . PHP_EOL;
作为回报我得到了:
PHP5.6:
{"data":"toEncrypt","time":1487922033}
22033}":"toEncrypt","time":1487922033}
PHP7.0:
{"data":"toEncrypt","time":1487932229
{"data":"toEncrypt","time":1487932229}
在我看来,这两个字符串应该与PHP7中的相同:)
我正在使用带有php7.0的Ubuntu 16.10和从ondrej / php存储库安装的另外的php5.6。如果php切换到7.0一切正常,5.6会导致openssl_decrypt()出现问题。
任何想法伙计们?