Расшифровать зашифрованное изображение AES в браузере с помощью window.crypto.subtle.decrypt

Пример использования для бизнеса:

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

Что я реализовал:

Я зашифровал изображение, используя открытый SSL и алгоритм AES 265 CBC. Ниже приведена команда, которую я использовал

openssl enc -in image-original.jpg -out image-enc.jpg -e -aes256 -k 26ca44bbeb4b6608437737970cbfe0db

Во внешнем интерфейсе я отправляю HTTP-вызов серверу для чтения зашифрованного изображения как большого двоичного объекта и пытаюсь расшифровать этот большой двоичный объект с помощью функции window.crypto.subtle.decrypt. Ниже приведен код

window.crypto.subtle.decrypt(
        {
            name: "AES-CBC",
            length: 256
        },
        "26ca44bbeb4b6608437737970cbfe0db",
        "blob that we fetched from server"
    ).then((result) => {
        debugger;
    });

Но я получаю указанную ниже ошибку в консоли браузера

"TypeError: Failed to execute 'decrypt' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'."

Вопросы:

У меня от вас 2 вопроса, ребята,

  1. Помогите мне решить эту ошибку, так как я не нахожу большой помощи в Интернете
  2. Предложите мне лучший подход или поделитесь своим опытом, если вы уже делали такую ​​работу в прошлом.

1 ответ

Вместо передачи необработанного ключа мне пришлось передать объект CryptoKey, в который былимпортирован необработанный ключ .

Другие вопросы по тегам