AES — расшифровывает в Javascript JSON, зашифрованный в crypto.js

Я шифрую с помощью PHP файл JSON, как это

0: {ID: 0, NAME: "London", REGION: "ENGLAND", …}
1: {ID: 1, NAME: "Rome", REGION: "ITALY", …}

и я использую эту библиотеку Скрипт в PHP Расшифровать в JS AES

function cryptoJsAesEncrypt($passphrase, $value){
$salt = openssl_random_pseudo_bytes(8);
$salted = '';
$dx = '';
while (strlen($salted) < 48) {
$dx = md5($dx.$passphrase.$salt, true);
$salted .= $dx;
}
$key = substr($salted, 0, 32);
$iv  = substr($salted, 32,16);
$encrypted_data = openssl_encrypt(json_encode($value), 'aes-256-cbc', $key, true, $iv);
$data = array("ct" => base64_encode($encrypted_data), "iv" => bin2hex($iv), "s" => bin2hex($salt));
return json_encode($data);
}

Я могу легко зашифровать в PHP и записать на сервер (запись в файл json) с помощью 128-битного ключа, например

$key = "TjWnZq4t7w!z%C*F";
$ForecastArray_crypt= cryptoJsAesEncrypt($key, $ForecastArray);
file_put_contents('ukforecastlist_example_crypt.json', $ForecastArray_crypt);

Проблема в том, что при попытке расшифровать в JS с вызовом

var ukforecastlist_decrypt = JSON.parse(CryptoJS.AES.decrypt(myjson.ct, "TjWnZq4t7w!z%C*F", {format: CryptoJSAesJson}).toString(CryptoJS.enc.Utf8));

Консоль возвращает:

Uncaught SyntaxError: Unexpected token V in JSON at position 0
at JSON.parse (<anonymous>)
at Object.parse (core_uk.js:33)
at Object._parse (aes.js:30)
at Object.decrypt (aes.js:31)
at Object.decrypt (aes.js:25)
at <anonymous>:1:54

Где «V» действительно первая буква myjson.ct

Что я делаю неправильно?
Я получил JSON с Jquery и проанализировал и сохранил в переменной myjson

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector