Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
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 Juli 2015.
Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
DieWeb 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 namensCrypto 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 EigenschaftCrypto.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. DerCrypto 101 Kurs kann ein guter Ausgangspunkt sein, um über die Gestaltung und Implementierung sicherer Systeme zu lernen.
In diesem Artikel
Schnittstellen
CryptoBietet 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.cryptooderWorkerGlobalScope.cryptozugegriffen werden.SubtleCryptoStellt ein Objekt dar, das grundlegende kryptografische Funktionen für Schlüsselgenerierung, Verschlüsselung, Entschlüsselung, Schlüsselverpackung und Entpackung usw. bietet.
CryptoKeyStellt einen kryptografischenSchlüssel dar, der aus einer der Methoden von
SubtleCryptowiegenerateKey(),deriveKey(),importKey()oderunwrapKey()gewonnen wurde.
Wörterbücher
AesCbcParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.encrypt(),SubtleCrypto.decrypt(),SubtleCrypto.wrapKey()oderSubtleCrypto.unwrapKey()übergeben werden sollte, wenn derAES-CBC-Algorithmus verwendet wird.AesCtrParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.encrypt(),SubtleCrypto.decrypt(),SubtleCrypto.wrapKey()oderSubtleCrypto.unwrapKey()übergeben werden sollte, wenn derAES-CTR-Algorithmus verwendet wird.AesGcmParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.encrypt(),SubtleCrypto.decrypt(),SubtleCrypto.wrapKey()oderSubtleCrypto.unwrapKey()übergeben werden sollte, wenn derAES-GCM-Algorithmus verwendet wird.AesKeyGenParamsStellt 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 derAES-CBC,AES-CTR,AES-GCM oderAES-KW identifiziert wird.CryptoKeyPairStellt ein öffentlicher und privater Schlüsselpaar dar, das für einen asymmetrischen Kryptografiealgorithmus verwendet wird.
EcKeyGenParamsStellt 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 entwederECDSA oderECDH identifiziert wird.EcKeyImportParamsStellt 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 entwederECDSA oderECDH identifiziert wird.EcdhKeyDeriveParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.deriveKey()übergeben werden sollte, wenn derECDH-Algorithmus verwendet wird.EcdsaParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.sign()oderSubtleCrypto.verify()übergeben werden sollte, wenn derECDSA-Algorithmus verwendet wird.HkdfParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.deriveKey()übergeben werden sollte, wenn derHKDF-Algorithmus verwendet wird.HmacImportParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.importKey()oderSubtleCrypto.unwrapKey()übergeben werden sollte, wenn ein Schlüssel für denHMAC-Algorithmus generiert wird.HmacKeyGenParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.generateKey()übergeben werden sollte, wenn ein Schlüssel für denHMAC-Algorithmus generiert wird.Pbkdf2ParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.deriveKey()übergeben werden sollte, wenn derPBKDF2-Algorithmus verwendet wird.RsaHashedImportParamsStellt 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 derRSASSA-PKCS1-v1_5,RSA-PSS oderRSA-OAEP identifiziert wird.RsaHashedKeyGenParamsStellt 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 derRSASSA-PKCS1-v1_5,RSA-PSS oderRSA-OAEP identifiziert wird.RsaOaepParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.encrypt(),SubtleCrypto.decrypt(),SubtleCrypto.wrapKey()oderSubtleCrypto.unwrapKey()übergeben werden sollte, wenn derRSA_OAEP-Algorithmus verwendet wird.RsaPssParamsStellt das Objekt dar, das als
algorithm-Parameter inSubtleCrypto.sign()oderSubtleCrypto.verify()übergeben werden sollte, wenn derRSA-PSS-Algorithmus verwendet wird.
Erweiterungen zu anderen Schnittstellen
Window.cryptoStellt das
Crypto-Objekt dar, das mit dem globalen Objekt im Hauptthread-Bereich assoziiert ist.WorkerGlobalScope.cryptoStellt das
Crypto-Objekt dar, das mit dem globalen Objekt im Worker-Bereich assoziiert ist.
Spezifikationen
| Specification |
|---|
| Web Cryptography Level 2> # crypto-interface> |