Декодированная RSA (phpseclib) ошибка выдачи строки JSON 3

я пытаюсь декодировать JSON, переданный через RSA (PHPSECLIB). Это выдает JSON_ERROR_CTRL_CHAR.

$json_string = $rsa->decode($cyphertext);
$json_object = json_decode($json_string);

$json_string выглядит так

{\u0000\"\u0000k\u0000e\u0000y\u0000\"\u0000:\u0000\"\u0000W\u0000Z\u0000g\u0000...

json_last_error() возвращает 3

Что я делаю неправильно?


person Milan Obrtlík    schedule 07.04.2015    source источник


Ответы (1)


Решение:

RSA Decrypt помещает в сообщение нулевые символы. Вы должны удалить их.

$json_string = $rsa->decode($ciphertext);  //decode my message
$json_string = str_replace("\0", "", $json_string); //replace null chars with "null" :D
$json_object = json_decode($json_string);  //decode json_string
person Milan Obrtlík    schedule 07.04.2015
comment
Похоже, вы кодируете строку UTF-16 и пытаетесь декодировать ее как US-ASCII или что-то в этом роде. - person neubert; 07.04.2015