Параметр тонкой криптографии не является типом «CryptoKey»

Я пытаюсь расшифровать строку с помощью SubtleCrypto , который был предварительно создан .

Вместо получения расшифрованного текста я получаю сообщение об ошибке: «Не удалось выполнить расшифровку» для «SubtleCrypto»: параметр 2 не относится к типу «CryptoKey».

      console.log(window.crypto.subtle.decrypt({name:"AES-CBC", iv:""}, "1234567890123456", "i4+WxNH8XYMnAm7RsRkfOw=="));

Я попытался исследовать ошибку, но не нашел ничего, связанного с таким базовым примером. Что я делаю неправильно?

1 ответ

Решение

Параметры имеют неправильные типы: IV и данные должны передаваться как , ключ как , видеть SubtleCrypto.decrypt(). А CryptoKey возвращается SubtleCrypto.importKey(), который используется для импорта ключа.

WebCrypto API(как API низкого уровня) не поддерживает преобразование данных, например, данные в кодировке Base64 или строки в BufferSource, поэтому для этого необходимо использовать другие вспомогательные методы.

Следующий код расшифровывает зашифрованный текст:

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