Spec-Zone.ru › Web APIs

Web Crypto API

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

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

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

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

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

API Веб-криптографии — это интерфейс, позволяющий скрипту использовать криптографические примитивы для построения систем, основанных на криптографии.

Некоторые браузеры реализовали интерфейс под названием Crypto, но без надлежащего определения или криптографической обоснованности. Чтобы избежать путаницы, методы и свойства этого интерфейса были удалены из браузеров, которые реализуют API Веб-криптографии, и все методы API Веб-криптографии доступны в новом интерфейсе: SubtleCrypto. Свойство Crypto.subtle предоставляет доступ к объекту, который его реализует.

Предупреждение: API Веб-криптографии предоставляет ряд криптографических примитивов низкого уровня. Их очень легко использовать неправильно, и связанные с этим подводные камни могут быть очень скрытыми.

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

Ошибки в проектировании и реализации системы безопасности могут свести безопасность системы к нулю.

Пожалуйста, изучайте и экспериментируйте, но не гарантируйте и не предполагайте безопасность вашей работы до тех пор, пока не будет проведено тщательное рассмотрение со стороны человека, компетентного в этой области. Курс Crypto 101 может стать отличным началом изучения проектирования и реализации безопасных систем.

Интерфейсы

Crypto

Предоставляет основные криптографические функции, такие как генератор криптографически сильных случайных чисел и доступ к криптографическим примитивам через объект SubtleCrypto. Объект этого типа можно получить в глобальной области видимости, используя Window.crypto или WorkerGlobalScope.crypto.

SubtleCrypto

Представляет объект, который предоставляет криптографические функции низкого уровня для генерации ключей, шифрования, дешифрования, упаковки и распаковки ключей и т. д.

CryptoKey

Представляет криптографический ключ, полученный из одного из методов SubtleCrypto generateKey(), deriveKey(), importKey() или unwrapKey().

Словари

AesCbcParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey() или SubtleCrypto.unwrapKey() при использовании алгоритма AES-CBC.

AesCtrParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey() или SubtleCrypto.unwrapKey() при использовании алгоритма AES-CTR.

AesGcmParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey() или SubtleCrypto.unwrapKey() при использовании алгоритма AES-GCM.

AesKeyGenParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.generateKey() при генерации ключа AES: то есть, когда алгоритм определён как любой из AES-CBC, AES-CTR, AES-GCM или AES-KW.

CryptoKeyPair

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

EcKeyGenParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.generateKey() при генерации любой пары ключей на основе эллиптических кривых: то есть, когда алгоритм идентифицируется как ECDSA или ECDH.

EcKeyImportParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.importKey() или SubtleCrypto.unwrapKey(), при генерации любой пары ключей на основе эллиптических кривых: то есть, когда алгоритм идентифицируется как ECDSA или ECDH.

EcdhKeyDeriveParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.deriveKey(), при использовании алгоритма ECDH.

EcdsaParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.sign() или SubtleCrypto.verify() при использовании алгоритма ECDSA.

HkdfParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.deriveKey() при использовании алгоритма HKDF.

HmacImportParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.importKey() или SubtleCrypto.unwrapKey() при генерации ключа для алгоритма HMAC.

HmacKeyGenParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.generateKey() при генерации ключа для алгоритма HMAC.

Pbkdf2Params

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.deriveKey() при использовании алгоритма PBKDF2.

RsaHashedImportParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.importKey() или SubtleCrypto.unwrapKey() при импорте любой пары ключей на основе RSA: то есть, когда алгоритм определён как любой из RSASSA-PKCS1-v1_5, RSA-PSS или RSA-OAEP.

RsaHashedKeyGenParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.generateKey() при генерации любой пары ключей на основе RSA: то есть, когда алгоритм определён как любой из RSASSA-PKCS1-v1_5, RSA-PSS или RSA-OAEP.

RsaOaepParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.encrypt(), SubtleCrypto.decrypt(), SubtleCrypto.wrapKey() или SubtleCrypto.unwrapKey() при использовании алгоритма RSA_OAEP.

RsaPssParams

Представляет объект, который должен быть передан в качестве параметра algorithm в SubtleCrypto.sign() или SubtleCrypto.verify() при использовании алгоритма RSA-PSS.

Расширения других интерфейсов

Window.crypto

Представляет объект Crypto, связанный с глобальным объектом в области видимости основного потока.

WorkerGlobalScope.crypto

Представляет объект Crypto, связанный с глобальным объектом в области видимости рабочего потока.

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

Спецификация
API криптографии веб
# crypto-interface

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
Web_Crypto_API 11 12 21 15 5 18 21 14 5 1.0 ≤37
getRandomValues 11 12 21 15 5 18 21 14 5 1.0 ≤37
randomUUID 92 92 95 78 15.4 92 95 65 15.4 16.0 92
subtle 37 12 34 24 117–11.1 37 34 24 117–11.3 3.0 37

© 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/Web_Crypto_API

Spec-Zone.ru

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