Web Crypto API
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Web Crypto API ist eine Schnittstelle, die es einem Skript ermöglicht, kryptografische Primitive zu nutzen, um Systeme mit Kryptografie zu erstellen.
Einige Browser haben eine Schnittstelle namens Crypto
implementiert, ohne sie klar zu definieren oder kryptografisch sicher zu gestalten. Um Verwirrung zu vermeiden, wurden Methoden und Eigenschaften dieser Schnittstelle aus Browsern entfernt, die die Web Crypto API implementieren, und alle Web Crypto API-Methoden sind auf einer neuen Schnittstelle verfügbar: SubtleCrypto
. Die Eigenschaft Crypto.subtle
gibt Zugriff auf ein Objekt, das diese implementiert.
Warnung: Die Web Crypto API stellt eine Anzahl von niedrigstufigen kryptografischen Primitiven bereit. Diese sind sehr leicht fehlerhaft zu verwenden, und die damit verbundenen Fallstricke können sehr subtil sein.
Selbst wenn Sie die grundlegenden kryptografischen Funktionen korrekt verwenden, ist das sichere Schlüsselmanagement und die Gesamtgestaltung des Sicherheitssystems äußerst schwierig korrekt durchzuführen und ist in der Regel das Gebiet von spezialisierten Sicherheitsexperten.
Fehler bei der Gestaltung und Implementierung des Sicherheitssystems können die Sicherheit des Systems völlig unwirksam machen.
Bitte lernen und experimentieren Sie, aber versichern oder implizieren Sie nicht die Sicherheit Ihrer Arbeit, bevor eine fachkundige Person in diesem Themenbereich sie gründlich überprüft hat. Der Crypto 101 Kurs kann ein guter Ausgangspunkt sein, um über die Gestaltung und Implementierung sicherer Systeme zu lernen.
Schnittstellen
Crypto
-
Bietet grundlegende kryptografische Funktionen, wie einen kryptografisch starken Zufallszahlengenerator und Zugriff auf kryptografische Primitive über ein
SubtleCrypto
-Objekt. Ein Objekt dieses Typs kann im globalen Gültigkeitsbereich überWindow.crypto
oderWorkerGlobalScope.crypto
zugegriffen werden. SubtleCrypto
-
Stellt ein Objekt dar, das grundlegende kryptografische Funktionen für Schlüsselgenerierung, Verschlüsselung, Entschlüsselung, Schlüsselverpackung und Entpackung usw. bietet.
CryptoKey
-
Stellt einen kryptografischen Schlüssel dar, der aus einer der Methoden von
SubtleCrypto
wiegenerateKey()
,deriveKey()
,importKey()
oderunwrapKey()
gewonnen wurde.
Wörterbücher
AesCbcParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.encrypt()
,SubtleCrypto.decrypt()
,SubtleCrypto.wrapKey()
oderSubtleCrypto.unwrapKey()
übergeben werden sollte, wenn der AES-CBC-Algorithmus verwendet wird. AesCtrParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.encrypt()
,SubtleCrypto.decrypt()
,SubtleCrypto.wrapKey()
oderSubtleCrypto.unwrapKey()
übergeben werden sollte, wenn der AES-CTR-Algorithmus verwendet wird. AesGcmParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.encrypt()
,SubtleCrypto.decrypt()
,SubtleCrypto.wrapKey()
oderSubtleCrypto.unwrapKey()
übergeben werden sollte, wenn der AES-GCM-Algorithmus verwendet wird. AesKeyGenParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.generateKey()
übergeben werden sollte, wenn ein AES-Schlüssel generiert wird: das heißt, wenn der Algorithmus als einer der AES-CBC, AES-CTR, AES-GCM oder AES-KW identifiziert wird. CryptoKeyPair
-
Stellt ein öffentlicher und privater Schlüsselpaar dar, das für einen asymmetrischen Kryptografiealgorithmus verwendet wird.
EcKeyGenParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.generateKey()
übergeben werden sollte, wenn ein elliptische-Kurve-basiertes Schlüsselpaar generiert wird: das heißt, wenn der Algorithmus als entweder ECDSA oder ECDH identifiziert wird. EcKeyImportParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.importKey()
oderSubtleCrypto.unwrapKey()
übergeben werden sollte, wenn ein elliptische-Kurve-basiertes Schlüsselpaar generiert wird: das heißt, wenn der Algorithmus als entweder ECDSA oder ECDH identifiziert wird. EcdhKeyDeriveParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.deriveKey()
übergeben werden sollte, wenn der ECDH-Algorithmus verwendet wird. EcdsaParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.sign()
oderSubtleCrypto.verify()
übergeben werden sollte, wenn der ECDSA-Algorithmus verwendet wird. HkdfParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.deriveKey()
übergeben werden sollte, wenn der HKDF-Algorithmus verwendet wird. HmacImportParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.importKey()
oderSubtleCrypto.unwrapKey()
übergeben werden sollte, wenn ein Schlüssel für den HMAC-Algorithmus generiert wird. HmacKeyGenParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.generateKey()
übergeben werden sollte, wenn ein Schlüssel für den HMAC-Algorithmus generiert wird. Pbkdf2Params
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.deriveKey()
übergeben werden sollte, wenn der PBKDF2-Algorithmus verwendet wird. RsaHashedImportParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.importKey()
oderSubtleCrypto.unwrapKey()
übergeben werden sollte, wenn jedes RSA-basierte Schlüsselpaar importiert wird: das heißt, wenn der Algorithmus als einer der RSASSA-PKCS1-v1_5, RSA-PSS oder RSA-OAEP identifiziert wird. RsaHashedKeyGenParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.generateKey()
übergeben werden sollte, wenn jedes RSA-basierte Schlüsselpaar generiert wird: das heißt, wenn der Algorithmus als einer der RSASSA-PKCS1-v1_5, RSA-PSS oder RSA-OAEP identifiziert wird. RsaOaepParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.encrypt()
,SubtleCrypto.decrypt()
,SubtleCrypto.wrapKey()
oderSubtleCrypto.unwrapKey()
übergeben werden sollte, wenn der RSA_OAEP-Algorithmus verwendet wird. RsaPssParams
-
Stellt das Objekt dar, das als
algorithm
-Parameter inSubtleCrypto.sign()
oderSubtleCrypto.verify()
übergeben werden sollte, wenn der RSA-PSS-Algorithmus verwendet wird.
Erweiterungen zu anderen Schnittstellen
Window.crypto
-
Stellt das
Crypto
-Objekt dar, das mit dem globalen Objekt im Hauptthread-Bereich assoziiert ist. WorkerGlobalScope.crypto
-
Stellt das
Crypto
-Objekt dar, das mit dem globalen Objekt im Worker-Bereich assoziiert ist.
Spezifikationen
Specification |
---|
Web Cryptography API # crypto-interface |
Browser-Kompatibilität
BCD tables only load in the browser