SubtleCrypto: decrypt() Methode
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 decrypt()
Methode der SubtleCrypto
Schnittstelle entschlüsselt einige verschlüsselte Daten. Sie nimmt als Argumente einen Schlüssel zur Entschlüsselung, einige optionale Zusatzparameter und die zu entschlüsselnden Daten (auch als "Ciphertext" bekannt). Sie gibt ein Promise
zurück, das mit den entschlüsselten Daten (auch als "Klartext" bekannt) erfüllt wird.
Syntax
decrypt(algorithm, key, data)
Parameter
algorithm
-
Ein Objekt, das den zu verwendenden Algorithmus und alle erforderlichen Zusatzparameter angibt. Die angegebenen Werte für die Zusatzparameter müssen mit denen übereinstimmen, die im entsprechenden
encrypt()
Aufruf verwendet wurden.- Um RSA-OAEP zu verwenden, übergeben Sie ein
RsaOaepParams
Objekt. - Um AES-CTR zu verwenden, übergeben Sie ein
AesCtrParams
Objekt. - Um AES-CBC zu verwenden, übergeben Sie ein
AesCbcParams
Objekt. - Um AES-GCM zu verwenden, übergeben Sie ein
AesGcmParams
Objekt.
- Um RSA-OAEP zu verwenden, übergeben Sie ein
key
-
Ein
CryptoKey
mit dem zur Entschlüsselung zu verwendenden Schlüssel. Bei Verwendung von RSA-OAEP ist dies dieprivateKey
Eigenschaft desCryptoKeyPair
Objekts. data
-
Ein
ArrayBuffer
, einTypedArray
, oder eineDataView
mit den zu entschlüsselnden Daten (auch als Ciphertext bekannt).
Rückgabewert
Ein Promise
, das mit einem ArrayBuffer
erfüllt wird, der den Klartext enthält.
Ausnahmen
Das Promise wird abgelehnt, wenn die folgenden Ausnahmen auftreten:
InvalidAccessError
DOMException
-
Tritt auf, wenn die angeforderte Operation für den bereitgestellten Schlüssel ungültig ist (z.B. ungültiger Verschlüsselungsalgorithmus oder ungültiger Schlüssel für den angegebenen Verschlüsselungsalgorithmus).
OperationError
DOMException
-
Tritt auf, wenn die Operation aus einem spezifischen Grund fehlgeschlagen ist (z.B. Algorithmusparameter mit ungültigen Größen oder es gab einen Fehler beim Entschlüsseln des Ciphertext).
Unterstützte Algorithmen
Die decrypt()
Methode unterstützt die gleichen Algorithmen wie die encrypt()
Methode.
Beispiele
Hinweis: Sie können die funktionierenden Beispiele auf GitHub ausprobieren.
RSA-OAEP
Dieser Code entschlüsselt ciphertext
mit RSA-OAEP. Siehe den vollständigen Code auf GitHub.
function decryptMessage(privateKey, ciphertext) {
return window.crypto.subtle.decrypt(
{ name: "RSA-OAEP" },
privateKey,
ciphertext,
);
}
AES-CTR
Dieser Code entschlüsselt ciphertext
mit AES im CTR Modus. Beachten Sie, dass counter
mit dem Wert übereinstimmen muss, der für die Verschlüsselung verwendet wurde. Siehe den vollständigen Code auf GitHub.
function decryptMessage(key, ciphertext) {
return window.crypto.subtle.decrypt(
{ name: "AES-CTR", counter, length: 64 },
key,
ciphertext,
);
}
AES-CBC
Dieser Code entschlüsselt ciphertext
mit AES im CBC Modus. Beachten Sie, dass iv
mit dem Wert übereinstimmen muss, der für die Verschlüsselung verwendet wurde. Siehe den vollständigen Code auf GitHub.
function decryptMessage(key, ciphertext) {
// The iv value is the same as that used for encryption
return window.crypto.subtle.decrypt({ name: "AES-CBC", iv }, key, ciphertext);
}
AES-GCM
Dieser Code entschlüsselt ciphertext
mit AES im GCM Modus. Beachten Sie, dass iv
mit dem Wert übereinstimmen muss, der für die Verschlüsselung verwendet wurde. Siehe den vollständigen Code auf GitHub.
function decryptMessage(key, ciphertext) {
// The iv value is the same as that used for encryption
return window.crypto.subtle.decrypt({ name: "AES-GCM", iv }, key, ciphertext);
}
Spezifikationen
Specification |
---|
Web Cryptography API # SubtleCrypto-method-decrypt |
Browser-Kompatibilität
Siehe auch
SubtleCrypto.encrypt()
.- RFC 3447 beschreibt RSAOAEP.
- NIST SP800-38A beschreibt den CTR Modus.
- NIST SP800-38A beschreibt den CBC Modus.
- NIST SP800-38D beschreibt den GCM Modus.
- FIPS 198-1 beschreibt HMAC.