Spec-Zone.ru › Web APIs

SubtleCrypto: метод decrypt()

Базовая линия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

Метод decrypt() интерфейса SubtleCrypto расшифровывает некоторые зашифрованные данные. Он принимает в качестве аргументов ключ для расшифровки, некоторые необязательные дополнительные параметры и данные для расшифровки (также известные как "шифрованный текст"). Он возвращает Promise, который будет выполнен с расшифрованными данными (также известными как "открытый текст").

Синтаксис

decrypt(algorithm, key, data)

Параметры

algorithm

Объект, определяющий используемый алгоритм и любые дополнительные параметры, если они требуются. Значения, указанные для дополнительных параметров, должны соответствовать тем, которые были переданы в соответствующий вызов encrypt().

  • Для использования RSA-OAEP, передайте объект RsaOaepParams.
  • Для использования AES-CTR, передайте объект AesCtrParams.
  • Для использования AES-CBC, передайте объект AesCbcParams.
  • Для использования AES-GCM, передайте объект AesGcmParams.
key

CryptoKey, содержащий ключ, используемый для расшифровки. Если используется RSA-OAEP, это свойство privateKey объекта CryptoKeyPair.

data

ArrayBuffer, TypedArray или DataView, содержащие данные для расшифровки (также известные как шифрованный текст).

Возвращаемое значение

Promise, который выполняется с ArrayBuffer, содержащим открытый текст.

Исключения

Обещание отклоняется, когда возникают следующие исключения:

InvalidAccessError DOMException

Возникает, когда запрошенная операция недействительна для предоставленного ключа (например, недействительный алгоритм шифрования или недействительный ключ для указанного алгоритма шифрования).

OperationError DOMException

Возникает, когда операция завершилась неудачно по причине, специфичной для операции (например, параметры алгоритма неверного размера или произошла ошибка при расшифровке шифрованного текста).

Поддерживаемые алгоритмы

Метод decrypt() поддерживает те же алгоритмы, что и метод encrypt().

Примеры

Примечание: Вы можете попробовать примеры на GitHub.

RSA-OAEP

Этот код расшифровывает ciphertext с помощью RSA-OAEP. См. полный код на GitHub.

function decryptMessage(privateKey, ciphertext) {
  return window.crypto.subtle.decrypt(
    { name: "RSA-OAEP" },
    privateKey,
    ciphertext,
  );
}

AES-CTR

Этот код расшифровывает ciphertext с использованием AES в режиме CTR. Обратите внимание, что counter должен соответствовать значению, используемому для шифрования. См. полный код на GitHub.

function decryptMessage(key, ciphertext) {
  return window.crypto.subtle.decrypt(
    { name: "AES-CTR", counter, length: 64 },
    key,
    ciphertext,
  );
}

AES-CBC

Этот код расшифровывает ciphertext с использованием AES в режиме CBC. Обратите внимание, что iv должен соответствовать значению, используемому для шифрования. См. полный код на GitHub.

function decryptMessage(key, ciphertext) {
  // The iv value is the same as that used for encryption
  return window.crypto.subtle.decrypt({ name: "AES-CBC", iv }, key, ciphertext);
}

AES-GCM

Этот код расшифровывает ciphertext с использованием AES в режиме GCM. Обратите внимание, что iv должен соответствовать значению, используемому для шифрования. См. полный код на GitHub.

function decryptMessage(key, ciphertext) {
  // The iv value is the same as that used for encryption
  return window.crypto.subtle.decrypt({ name: "AES-GCM", iv }, key, ciphertext);
}

Спецификации

Спецификация
Web Cryptography API
# SubtleCrypto-method-decrypt

Совместимость браузеров

Рабочие столы Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
decrypt 37 79
12–79Не поддерживается: AES-CTR.
34 24 7 37 34 24 7 3.0 37

См. также

  • SubtleCrypto.encrypt().
  • RFC 3447 определяет RSAOAEP.
  • NIST SP800-38A определяет режим CTR.
  • NIST SP800-38A определяет режим CBC.
  • NIST SP800-38D определяет режим GCM.
  • FIPS 198-1 определяет HMAC.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/decrypt

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API