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 Januar 2020.
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 des SubtleCrypto Interfaces entschlüsselt einige verschlüsselte Daten. Sie nimmt als Argumente einen Schlüssel zum Entschlüsseln, einige optionale zusätzliche Parameter und die zu entschlüsselnden Daten (auch als "Chiffretext" 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 zusätzlichen Parameter angibt. Die angegebenen Werte für die zusätzlichen Parameter müssen mit denen übereinstimmen, die im entsprechenden
encrypt()Aufruf übergeben wurden.- Um RSA-OAEP zu verwenden, geben Sie ein
RsaOaepParamsObjekt an. - Um AES-CTR zu verwenden, geben Sie ein
AesCtrParamsObjekt an. - Um AES-CBC zu verwenden, geben Sie ein
AesCbcParamsObjekt an. - Um AES-GCM zu verwenden, geben Sie ein
AesGcmParamsObjekt an.
- Um RSA-OAEP zu verwenden, geben Sie ein
key-
Ein
CryptoKey, der den Schlüssel für die Entschlüsselung enthält. Wenn RSA-OAEP verwendet wird, ist dies dieprivateKeyEigenschaft desCryptoKeyPairObjekts. data-
Ein
ArrayBuffer, einTypedArray, oder einDataView, das die zu entschlüsselnden Daten enthält (auch als Chiffretext 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:
InvalidAccessErrorDOMException-
Tritt auf, wenn die angeforderte Operation für den bereitgestellten Schlüssel nicht gültig ist (z.B. ungültiger Verschlüsselungsalgorithmus oder ungültiger Schlüssel für den angegebenen Verschlüsselungsalgorithmus).
OperationErrorDOMException-
Tritt auf, wenn die Operation aus einem spezifischen Grund fehlschlägt (z.B. Algorithmusparameter ungültiger Größen oder es gab einen Fehler bei der Entschlüsselung des Chiffretexts).
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. Sehen Sie 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. Sehen Sie 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. Sehen Sie 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. Sehen Sie 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 Level 2> # SubtleCrypto-method-decrypt> |
Browser-Kompatibilität
Loading…
Siehe auch
SubtleCrypto.encrypt().- RFC 3447 spezifiziert RSAOAEP.
- NIST SP800-38A spezifiziert CTR-Modus.
- NIST SP800-38A spezifiziert CBC-Modus.
- NIST SP800-38D spezifiziert GCM-Modus.
- FIPS 198-1 spezifiziert HMAC.