Результаты дешифрования CryptoJS в искаженных данных UTF-8 - PullRequest
0 голосов
/ 27 апреля 2019

Итак, вот моя проблема.

Я шифрую значение с помощью сценария nodeJS на моем локальном компьютере (MacBook Pro) и загружаю полученное закодированное значение в виде строки в firebase.

У меня есть угловое приложение, которое считывает значение из значений, расшифровывает его и преобразует в строку UTF8.Тем не менее, я получаю некорректную ошибку UTF8.

Теперь я знаю, что шифрование правильное, поскольку, если я расшифрую текст cipherText в том же скрипте на моем macbook, он расшифрует его нормально.Вот код шифрования, выполняемый моей локальной машиной:

const cipherBytes = CryptoJS.AES.encrypt(strVal, key, opts);
const cipherText = cipherBytes.toString();

// This works fine on my local machine
console.log('Decrypted', CryptoJS.AES.decrypt(cipherText, key, opts).toString(CryptoJS.enc.Utf8));

Например, вот пример шифрованного текста из прогона

U2FsdGVkX19wrG5ar3MGcBf8EXxDyO7HuE9vvaTsBvA =

** Эта строка хранится в Firebase.

Далее я загружаю cipherText в firebase.Мое угловое приложение прочитает его и получит ошибку.Обратите внимание, что угловое приложение без проблем расшифровывает зашифрованные шифры.Проблема заключается в попытке расшифровать шифры, зашифрованные на моем локальном Mac.

Я подозреваю, что это связано с тем, как Mac представляет двоичные данные по сравнению с серверами Google, но не уверен, какое здесь решение

...