> 백엔드 개발 > PHP 튜토리얼 > php mcrypt_encrypt 后 json_decode结果为null

php mcrypt_encrypt 后 json_decode结果为null

WBOY
풀어 주다: 2016-06-20 12:59:02
원래의
1205명이 탐색했습니다.

$key = '1234567890123456';    $iv = '1234567890123456';    $os = array(        'os' => php_uname('s'),        'time' => time(),        );    $os = json_encode($os);    $crypttext = base64_encode((mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $os, MCRYPT_MODE_CBC, $iv)));    $crypttext = base64_decode($crypttext);    $crypttext = (mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, MCRYPT_MODE_CBC, $iv));    $crypttext = json_decode($crypttext);    var_dump($crypttext);
로그인 후 복사

求解


回复讨论(解决方案)

$key = '1234567890123456';$iv = '1234567890123456';$os = array(  'os' => php_uname('s'),  'time' => time(),);var_dump( $os = json_encode($os));$crypttext = base64_encode((mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $os, MCRYPT_MODE_CBC, $iv))); $crypttext = base64_decode($crypttext); var_dump( $crypttext = (mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypttext, MCRYPT_MODE_CBC, $iv)));echo bin2hex($crypttext), PHP_EOL;//尾部多了11个空字符$crypttext = json_decode(trim($crypttext));//删掉就对了var_dump($crypttext);
로그인 후 복사
string(37) "{"os":"Windows NT","time":1428450826}"string(48) "{"os":"Windows NT","time":1428450826}"7b226f73223a2257696e646f7773204e54222c2274696d65223a313432383435303832367d0000000000000000000000object(stdClass)#1 (2) {  ["os"]=>  string(10) "Windows NT"  ["time"]=>  int(1428450826)}
로그인 후 복사

原来也有解码这问题,看到跟原来不同了,一直不清楚原来是空格字符。。。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿