Давайте упростим это, чтобы иметь возможность решить эту проблему. Ели мы начинаем что-то вроде этого:
jsonStr = '{"something":"else"}';
var encrypted = CryptoJS.AES.encrypt(jsonStr, 'youngunicornsrunfree');
var decrypted = CryptoJS.AES.decrypt(encrypted, "youngunicornsrunfree");
console.log(decrypted.toString(CryptoJS.enc.Utf8));
Это дает нам ответ jsonStr после того как мы зашифровать его расшифровать его. Но скажем, мы хотим отправить его на сервер. Мы можем сделать это легко, вытащив зашифрованную строку с помощью toString()
. Звучит просто так? Скажем, нам нужно отправить зашифрованный jsonStr на сервер. Попробуйте это
jsonStr = '{"something":"else"}';
var encrypted = CryptoJS.AES.encrypt(jsonStr, 'youngunicornsrunfree');
console.log("We send this: "+encrypted.toString());
Теперь скажите, что мы отправили что-то раньше, и мы вернем его. Мы можем сделать что-то вроде этого:
var messageFromServer = "U2FsdGVkX19kyHo1s8+EwNuo/LQdL3RnSoDHU2ovA88RtyOs+PvpQ1UZssMNfflTemaMAwHDbnWagA8lQki5kQ==";
var decrypted = CryptoJS.AES.decrypt(messageFromServer, "youngunicornsrunfree");
console.log(decrypted.toString(CryptoJS.enc.Utf8));
К сожалению, к сожалению. Я получаю пустую строку. Если я дешифрую зашифрованный, не преобразовывая его в строку, он отлично работает, он не работает, как только я конвертирую его в строку. (даже используя ваш простой пример) – Baconbeastnz
@Baconbeastnz С пустым результатом вы, скорее всего, не введете пароль или зашифрованное сообщение. Попробуйте запустить это в консоли на странице, содержащей скрипты 'CryptoJS.AES.decrypt (CryptoJS.AES.encrypt ('It works !!!', 'pass'). ToString(), 'pass'). ToString (CryptoJS .enc.Utf8) 'Если это работает, вы, вероятно, будете манипулировать зашифрованным сообщением перед расшифровкой или использованием неправильного пароля. – DutGRIFF