Итак, вот моя проблема.
Я шифрую значение с помощью сценария 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, но не уверен, какое здесь решение