Spec-Zone.ru › Deno 2

Crypto

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

Например, crypto


интерфейс AesCbcParams

расширяет Algorithm

Свойства

iv: BufferSource

интерфейс AesCtrParams

расширяет Algorithm

Свойства

counter: BufferSource
length: number

интерфейс AesDerivedKeyParams

расширяет Algorithm

Свойства

length: number

интерфейс AesGcmParams

расширяет Algorithm

Свойства

iv: BufferSource
additionalData: BufferSource
необязательное
tagLength: number
необязательное

интерфейс AesKeyAlgorithm

расширяет KeyAlgorithm

Свойства

length: number

интерфейс AesKeyGenParams

расширяет Algorithm

Свойства

length: number

интерфейс Algorithm

Свойства

name: string

интерфейс 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 с помощью криптографически стойкого генератора случайных чисел.

переменная Crypto

Объект-конструктор для Crypto.

Доступ к экземпляру Crypto осуществляется через глобальное свойство crypto, а не путем прямого создания, поэтому вызов конструктора приводит к ошибке.

Свойства

prototype: Crypto
только для чтения

интерфейс CryptoKey

Словарь CryptoKey интерфейса Web Crypto API представляет криптографический ключ.

Свойства

algorithm: KeyAlgorithm
только для чтения
extractable: boolean
только для чтения
type: KeyType
только для чтения
usages: KeyUsage[]
только для чтения

переменная CryptoKey

Объект-конструктор для CryptoKey.

Экземпляры CryptoKey нельзя создать напрямую; они создаются методами SubtleCrypto, например generateKey, importKey и deriveKey, поэтому вызов конструктора приводит к ошибке.

Свойства

prototype: CryptoKey
только для чтения

интерфейс CryptoKeyPair

Словарь CryptoKeyPair интерфейса Web Crypto API представляет пару ключей для алгоритма асимметричной криптографии, также известного как алгоритм с открытым ключом.

Свойства

privateKey: CryptoKey
publicKey: CryptoKey

переменная CryptoKeyPair

Объект-конструктор для CryptoKeyPair.

Объекты CryptoKeyPair возвращаются интерфейсом SubtleCrypto.generateKey для асимметричных алгоритмов и не могут быть созданы напрямую, поэтому вызов конструктора приводит к ошибке.

Свойства

prototype: CryptoKeyPair
только для чтения

интерфейс EcdhKeyDeriveParams

расширяет Algorithm

Свойства

public: CryptoKey

интерфейс EcdsaParams

расширяет Algorithm

Свойства

hash: HashAlgorithmIdentifier

интерфейс EcKeyAlgorithm

расширяет KeyAlgorithm

Свойства

namedCurve: NamedCurve

интерфейс EcKeyGenParams

расширяет Algorithm

Свойства

namedCurve: NamedCurve

интерфейс EcKeyImportParams

расширяет Algorithm

Свойства

namedCurve: NamedCurve

интерфейс HkdfParams

расширяет Algorithm

Свойства

hash: HashAlgorithmIdentifier
info: BufferSource
salt: BufferSource

интерфейс HmacImportParams

расширяет Algorithm

Свойства

hash: HashAlgorithmIdentifier
length: number
необязательное

интерфейс HmacKeyAlgorithm

расширяет KeyAlgorithm

Свойства

hash: KeyAlgorithm
length: number

интерфейс HmacKeyGenParams

расширяет Algorithm

Свойства

hash: HashAlgorithmIdentifier
length: number
необязательное

интерфейс 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

интерфейс Pbkdf2Params

расширяет Algorithm

Свойства

hash: HashAlgorithmIdentifier
iterations: number
salt: BufferSource

интерфейс RsaHashedImportParams

расширяет Algorithm

Свойства

hash: HashAlgorithmIdentifier

интерфейс RsaHashedKeyAlgorithm

расширяет RsaKeyAlgorithm

Свойства

hash: KeyAlgorithm

интерфейс RsaHashedKeyGenParams

расширяет RsaKeyGenParams

Свойства

hash: HashAlgorithmIdentifier

интерфейс RsaKeyAlgorithm

расширяет KeyAlgorithm

Свойства

modulusLength: number
publicExponent: BigInteger

интерфейс RsaKeyGenParams

расширяет Algorithm

Свойства

modulusLength: number
publicExponent: BigInteger

интерфейс RsaOaepParams

расширяет Algorithm

Свойства

label: BufferSource
необязательный

интерфейс RsaOtherPrimesInfo

Свойства

d: string
необязательный
r: string
необязательный
t: string
необязательный

интерфейс RsaPssParams

расширяет Algorithm

Свойства

saltLength: number

интерфейс SubtleCrypto

Этот интерфейс Web Crypto API предоставляет ряд низкоуровневых криптографических функций. Он доступен через свойства Crypto.subtle в контексте окна (через globalThis.crypto).

Методы

generateKey(
algorithm: RsaHashedKeyGenParams | EcKeyGenParams,
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKeyPair>

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

Эта перегрузка используется для создания пар ключей с алгоритмами RSA или эллиптических кривых.

generateKey(
algorithm: AesKeyGenParams | HmacKeyGenParams,
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKey>

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

Эта перегрузка используется для таких алгоритмов, как AES и HMAC.

generateKey(
algorithm: AlgorithmIdentifier,
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKeyPair | CryptoKey>

Создаёт криптографический ключ или пару ключей для заданного алгоритма.

Эта универсальная перегрузка обрабатывает любой запрос на создание ключей и возвращает симметричный ключ или асимметричную пару ключей в зависимости от указанного алгоритма.

importKey(
format: "jwk",
keyData: JsonWebKey,
algorithm:
AlgorithmIdentifier
| HmacImportParams
| RsaHashedImportParams
| EcKeyImportParams
,
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKey>

Импортирует криптографический ключ в формате JSON Web Key (JWK).

Этот метод используется для импорта асимметричного ключа (например, RSA или ECDSA) из объекта JWK. JWK обеспечивает структурированное представление ключей, позволяя переносить их между разными системами.

importKey(
format: Exclude<KeyFormat, "jwk">,
keyData: BufferSource,
algorithm:
AlgorithmIdentifier
| HmacImportParams
| RsaHashedImportParams
| EcKeyImportParams
,
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, упрощая его хранение и передачу между системами.

exportKey(
format: Exclude<KeyFormat, "jwk">,
key: CryptoKey,
): Promise<ArrayBuffer>

Экспортирует криптографический ключ в формате raw, PKCS8 или SPKI.

Этот метод используется для экспорта симметричных ключей (AES), закрытых ключей (PKCS8) или открытых ключей (SPKI) в двоичном виде.

sign(
algorithm:
AlgorithmIdentifier
| RsaPssParams
| EcdsaParams
,
key: CryptoKey,
data: BufferSource,
): Promise<ArrayBuffer>

Создаёт цифровую подпись с помощью закрытого криптографического ключа.

Этот метод используется для подписания данных асимметричным ключом (например, RSA-PSS, ECDSA).

verify(
algorithm:
AlgorithmIdentifier
| RsaPssParams
| EcdsaParams
,
key: CryptoKey,
signature: BufferSource,
data: BufferSource,
): Promise<boolean>

Проверяет цифровую подпись с помощью открытого криптографического ключа.

Этот метод проверяет, действительна ли подпись для указанных данных.

digest(
algorithm: AlgorithmIdentifier,
data: BufferSource,
): Promise<ArrayBuffer>

Вычисляет криптографический хеш (дайджест) указанных данных.

Этот метод часто используется для проверки целостности данных.

encrypt(
algorithm:
AlgorithmIdentifier
| RsaOaepParams
| AesCbcParams
| AesGcmParams
| AesCtrParams
,
key: CryptoKey,
data: BufferSource,
): Promise<ArrayBuffer>

Шифрует данные с помощью криптографического ключа.

Этот метод используется как для симметричного (AES), так и для асимметричного (RSA) шифрования.

decrypt(
algorithm:
AlgorithmIdentifier
| RsaOaepParams
| AesCbcParams
| AesGcmParams
| AesCtrParams
,
key: CryptoKey,
data: BufferSource,
): Promise<ArrayBuffer>

Расшифровывает ранее зашифрованные данные с помощью криптографического ключа.

deriveBits(
algorithm:
AlgorithmIdentifier
| HkdfParams
| Pbkdf2Params
| EcdhKeyDeriveParams
,
baseKey: CryptoKey,
length: number,
): Promise<ArrayBuffer>

Этот метод используется для получения ключа из базового ключа с помощью криптографического алгоритма.

deriveKey(
algorithm:
AlgorithmIdentifier
| HkdfParams
| Pbkdf2Params
| EcdhKeyDeriveParams
,
baseKey: CryptoKey,
derivedKeyType:
AlgorithmIdentifier
| AesDerivedKeyParams
| HmacImportParams
| HkdfParams
| Pbkdf2Params
,
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKey>

Этот метод используется для получения секретного ключа из базового или главного ключа с помощью криптографического алгоритма. Он возвращает Promise, который выполняется с объектом нового ключа.

wrapKey(
format: KeyFormat,
key: CryptoKey,
wrappingKey: CryptoKey,
wrapAlgorithm:
AlgorithmIdentifier
| RsaOaepParams
| AesCbcParams
| AesCtrParams
,
): Promise<ArrayBuffer>

Упаковывает (шифрует) криптографический ключ для безопасного хранения или передачи

unwrapKey(
format: KeyFormat,
wrappedKey: BufferSource,
unwrappingKey: CryptoKey,
unwrapAlgorithm:
AlgorithmIdentifier
| RsaOaepParams
| AesCbcParams
| AesCtrParams
,
unwrappedKeyAlgorithm:
AlgorithmIdentifier
| HmacImportParams
| RsaHashedImportParams
| EcKeyImportParams
,
extractable: boolean,
keyUsages: KeyUsage[],
): Promise<CryptoKey>

Распаковывает (расшифровывает) ранее упакованный ключ.

переменная 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

Определение

AlgorithmIdentifier

псевдоним типа 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.

Тип

Crypto

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/web/crypto

Spec-Zone.ru

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