Crypto
Криптографические функции для безопасной связи, защиты данных и управления ключами. Генерируйте безопасные случайные числа, шифруйте и расшифровывайте данные, а также управляйте криптографическими ключами.
Например, crypto
интерфейс Crypto
Этот интерфейс Web Crypto API предоставляет базовые криптографические функции. Доступ к нему осуществляется через глобальное свойство crypto, которое обеспечивает генерацию криптографически стойких случайных чисел и доступ к низкоуровневым примитивам, предоставляемым SubtleCrypto через Crypto.subtle.
Свойства
subtle: SubtleCrypto Методы
getRandomValues<T extends ArrayBufferView>(array: T): T Заполняет переданный типизированный массив криптографически безопасными случайными значениями.
randomUUID(): `${string}-${string}-${string}-${string}-${string}` Генерирует случайный UUID версии 4 согласно RFC 4122 с помощью криптографически стойкого генератора случайных чисел.
интерфейс CryptoKey
Словарь CryptoKey интерфейса Web Crypto API представляет криптографический ключ.
Свойства
algorithm: KeyAlgorithm extractable: boolean переменная CryptoKey
Объект-конструктор для CryptoKey.
Экземпляры CryptoKey нельзя создать напрямую; они создаются методами SubtleCrypto, например generateKey, importKey и deriveKey, поэтому вызов конструктора приводит к ошибке.
Свойства
интерфейс CryptoKeyPair
Словарь CryptoKeyPair интерфейса Web Crypto API представляет пару ключей для алгоритма асимметричной криптографии, также известного как алгоритм с открытым ключом.
Свойства
переменная CryptoKeyPair
Объект-конструктор для CryptoKeyPair.
Объекты CryptoKeyPair возвращаются интерфейсом SubtleCrypto.generateKey для асимметричных алгоритмов и не могут быть созданы напрямую, поэтому вызов конструктора приводит к ошибке.
Свойства
prototype: CryptoKeyPair интерфейс JsonWebKey
Свойства
alg: string crv: string d: string dp: string dq: string e: string ext: boolean k: string key_ops: string[] kty: string n: string oth: RsaOtherPrimesInfo[] p: string q: string qi: string use: string x: string y: string интерфейс KeyAlgorithm
Свойства
name: string интерфейс RsaOtherPrimesInfo
интерфейс SubtleCrypto
Этот интерфейс Web Crypto API предоставляет ряд низкоуровневых криптографических функций. Он доступен через свойства Crypto.subtle в контексте окна (через globalThis.crypto).
Методы
generateKey(): Promise<CryptoKeyPair> Создаёт асимметричную пару криптографических ключей для шифрования, подписи или обмена ключами.
Эта перегрузка используется для создания пар ключей с алгоритмами RSA или эллиптических кривых.
generateKey(): Promise<CryptoKey> Создаёт симметричный криптографический ключ для шифрования, аутентификации или хеширования.
Эта перегрузка используется для таких алгоритмов, как AES и HMAC.
generateKey(): Promise<CryptoKeyPair | CryptoKey> Создаёт криптографический ключ или пару ключей для заданного алгоритма.
Эта универсальная перегрузка обрабатывает любой запрос на создание ключей и возвращает симметричный ключ или асимметричную пару ключей в зависимости от указанного алгоритма.
importKey(): Promise<CryptoKey> Импортирует криптографический ключ в формате JSON Web Key (JWK).
Этот метод используется для импорта асимметричного ключа (например, RSA или ECDSA) из объекта JWK. JWK обеспечивает структурированное представление ключей, позволяя переносить их между разными системами.
importKey(
format: Exclude<KeyFormat, "jwk">,
keyData: BufferSource,
algorithm: ,
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKey> Импортирует криптографический ключ в формате raw, PKCS8 или SPKI.
Этот метод используется для импорта симметричных ключей (например, AES), закрытых ключей (PKCS8) или открытых ключей (SPKI).
exportKey(
format: "jwk",
key: CryptoKey,
): Promise<JsonWebKey> Экспортирует криптографический ключ в формате JSON Web Key (JWK).
Этот метод позволяет экспортировать асимметричный ключ (например, RSA, ECDSA) в представлении на основе JSON, упрощая его хранение и передачу между системами.
Экспортирует криптографический ключ в формате raw, PKCS8 или SPKI.
Этот метод используется для экспорта симметричных ключей (AES), закрытых ключей (PKCS8) или открытых ключей (SPKI) в двоичном виде.
sign(): Promise<ArrayBuffer> Создаёт цифровую подпись с помощью закрытого криптографического ключа.
Этот метод используется для подписания данных асимметричным ключом (например, RSA-PSS, ECDSA).
verify(): Promise<boolean> Проверяет цифровую подпись с помощью открытого криптографического ключа.
Этот метод проверяет, действительна ли подпись для указанных данных.
digest(
algorithm: AlgorithmIdentifier,
data: BufferSource,
): Promise<ArrayBuffer> Вычисляет криптографический хеш (дайджест) указанных данных.
Этот метод часто используется для проверки целостности данных.
encrypt(): Promise<ArrayBuffer> Шифрует данные с помощью криптографического ключа.
Этот метод используется как для симметричного (AES), так и для асимметричного (RSA) шифрования.
decrypt(): Promise<ArrayBuffer> Расшифровывает ранее зашифрованные данные с помощью криптографического ключа.
deriveBits(): Promise<ArrayBuffer> Этот метод используется для получения ключа из базового ключа с помощью криптографического алгоритма.
deriveKey(): Promise<CryptoKey> Этот метод используется для получения секретного ключа из базового или главного ключа с помощью криптографического алгоритма. Он возвращает Promise, который выполняется с объектом нового ключа.
wrapKey(): Promise<ArrayBuffer> Упаковывает (шифрует) криптографический ключ для безопасного хранения или передачи
переменная SubtleCrypto
Объект-конструктор для SubtleCrypto.
Экземпляр SubtleCrypto доступен через Crypto.subtle (crypto.subtle), а не создаётся напрямую, поэтому вызов конструктора приводит к исключению.
Свойства
prototype: SubtleCrypto Методы
supports(
operation:
"encrypt"
| "decrypt"
| "sign"
| "verify"
| "digest"
| "generateKey"
| "deriveKey"
| "deriveBits"
| "importKey"
| "exportKey"
| "wrapKey"
| "unwrapKey"
| "encapsulateKey"
| "encapsulateBits"
| "decapsulateKey"
| "decapsulateBits"
| "getPublicKey"
,
algorithm: string | object,
lengthOrHash?:
number
| string
| object
| null
,
): boolean Синхронное определение поддержки сочетаний алгоритмов и операций Web Crypto согласно предложению WICG «Modern Algorithms in the Web Crypto API». Возвращает true, если эта среда выполнения поддерживает запрошенное сочетание, и false в противном случае.
Третий аргумент интерпретируется как длина производных битов, если он является числом (актуально для "deriveBits"), и как связанный алгоритм — например, алгоритм производного ключа для "deriveKey", алгоритм упаковываемого или распаковываемого ключа для "wrapKey" / "unwrapKey" либо алгоритм общего ключа для "encapsulateKey" / "decapsulateKey" — в противном случае.
псевдоним типа AlgorithmIdentifier
Определение
string | Algorithm псевдоним типа BigInteger
Определение
Uint8Array<ArrayBuffer> псевдоним типа HashAlgorithmIdentifier
Определение
псевдоним типа KeyFormat
Определение
"jwk"
| "pkcs8"
| "raw"
| "raw-secret"
| "raw-public"
| "raw-private"
| "raw-seed"
| "spki"
псевдоним типа KeyType
Определение
"private"
| "public"
| "secret"
псевдоним типа KeyUsage
Определение
"decrypt"
| "deriveBits"
| "deriveKey"
| "encrypt"
| "sign"
| "unwrapKey"
| "verify"
| "wrapKey"
псевдоним типа NamedCurve
Определение
string переменная crypto
Глобальный экземпляр Crypto, предоставляющий доступ к Web Crypto API, включая криптографически безопасную генерацию случайных чисел через Crypto.getRandomValues, генерацию случайных UUID через Crypto.randomUUID и низкоуровневые примитивы, предоставляемые SubtleCrypto через Crypto.subtle.
Тип
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/web/crypto