Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
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 generateKey() Methode der SubtleCrypto-Schnittstelle wird verwendet, um einen neuen Schlüssel (für symmetrische Algorithmen) oder ein Schlüsselpaar (für Public-Key-Algorithmen) zu generieren.
Ein Objekt, das den Typ des zu generierenden Schlüssels definiert und zusätzliche algorithmusspezifische Parameter bereitstellt.
Ein boolescher Wert, der angibt, ob es möglich sein wird, den Schlüssel mit SubtleCrypto.exportKey() oder SubtleCrypto.wrapKey() zu exportieren. Beachten Sie, dass beim Erzeugen asymmetrischer Schlüsselpaare (wie RSA oder ECDSA) der extractable Parameter bestimmt, ob der private Schlüssel exportiert werden kann; der öffentliche Schlüssel ist immer exportierbar.
keyUsagesEin Array von Strings, das angibt, was mit dem neu generierten Schlüssel gemacht werden kann. Mögliche Werte für Array-Elemente sind:
encryptDer Schlüssel kann verwendet werden, um Nachrichten zu verschlüsseln.
decryptDer Schlüssel kann verwendet werden, um Nachrichten zu entschlüsseln.
signDer Schlüssel kann verwendet werden, um Nachrichten zu signieren.
verifyDer Schlüssel kann verwendet werden, um Signaturen zu verifizieren.
deriveKeyDer Schlüssel kann verwendet werden, um einen neuen Schlüssel abzuleiten.
deriveBitsDer Schlüssel kann verwendet werden, um Bits abzuleiten.
wrapKeyDer Schlüssel kann verwendet werden, um einen Schlüssel zu umhüllen.
unwrapKeyDer Schlüssel kann verwendet werden, um einen Schlüssel zu entpacken.
Ein Promise, das mit einem CryptoKey (für symmetrische Algorithmen) oder einem CryptoKeyPair (für Public-Key-Algorithmen) erfüllt wird.
Das Promise wird abgelehnt, wenn die folgende Ausnahme auftritt:
SyntaxError DOMExceptionWird ausgelöst, wenn das Ergebnis ein CryptoKey vom Typ secret oder private ist, aber keyUsages leer oder ungültig für den Algorithmustyp ist.
SyntaxError DOMExceptionWird ausgelöst, wenn das Ergebnis ein CryptoKeyPair ist und sein privateKey.usages Attribut leer oder ungültig für den Algorithmustyp ist.
Hinweis: Sie können die funktionierenden Beispiele auf GitHub ausprobieren.
Dieser Code generiert ein RSA-OAEP-Verschlüsselungsschlüsselpaar. Sehen Sie den vollständigen Code auf GitHub an.
Dieser Code generiert ein ECDSA-Signaturschlüsselpaar. Sehen Sie den vollständigen Code auf GitHub an.
Dieser Code generiert einen HMAC-Signaturschlüssel. Sehen Sie den vollständigen Code auf GitHub an.
Dieser Code generiert einen AES-GCM-Verschlüsselungsschlüssel. Sehen Sie den vollständigen Code auf GitHub an.
Dieser Code generiert ein Ed25519-Signaturschlüsselpaar. Es ist abgeleitet von diesem Quellcode auf GitHub, den Sie hier live ausführen können.
Der Code zur Erzeugung eines Schlüsselpaares mit dem Ed25519-Algorithmus und zur Protokollierung der Informationen in jedem Schlüssel wird unten gezeigt. Beachten Sie, dass der Code in einem try..catch-Block ausgeführt wird, da nicht alle Browser diesen Algorithmus unterstützen.
JavaScript holt zuerst die Elemente #sign-button und #message <input> und fügt dann einen Listener für das click-Ereignis auf der Schaltfläche hinzu. Der Ereignis-Handler löscht das Protokoll und führt die anderen Operationen aus, indem der Inhalt des <input>-Elements übergeben wird.
Die Informationen über die erstellten Schlüssel werden unten protokolliert (oder ein Fehlermeldungs-String, wenn der Browser die Erstellung des Schlüssels nicht erlaubt).
Dieser Code generiert ein X25519-Öffentlich- und Privatschlüsselpaar, das in SubtleCrypto.deriveKey() zur Erstellung eines gemeinsamen Schlüssels oder in SubtleCrypto.deriveBits() zur Erstellung eines gemeinsamen Geheimnisses verwendet werden kann.
Der Code zur Erzeugung eines Schlüsselpaares mit dem X25519-Algorithmus und zur Protokollierung der Informationen in jedem Schlüssel wird unten gezeigt. Beachten Sie, dass der Code in einem try..catch-Block ausgeführt wird, da nicht alle Browser diesen Algorithmus unterstützen.
JavaScript holt zuerst die Elemente #run-button und #log <input> und fügt dann einen Listener für das click-Ereignis auf der Schaltfläche hinzu. Der Ereignis-Handler löscht das Protokoll, generiert ein X25519-Schlüsselpaar und protokolliert einige seiner Eigenschaften.
Die Informationen über die erstellten Schlüssel werden unten protokolliert (oder ein Fehlermeldungs-String, wenn der Browser die Erstellung des Schlüssels nicht erlaubt).
| Web Cryptography Level 2 # SubtleCrypto-method-generateKey |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.