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 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 bekannt als "Chiffretext"). Sie gibt ein Promise zurück, das mit den entschlüsselten Daten (auch bekannt als "Klartext") erfüllt wird.

Syntax

js
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 beim entsprechenden encrypt()-Aufruf übergeben wurden.

key

Ein CryptoKey, der den zu verwendenden Schlüssel für die Entschlüsselung enthält. Bei Verwendung von RSA-OAEP ist dies die privateKey-Eigenschaft des CryptoKeyPair-Objekts.

data

Ein ArrayBuffer, ein TypedArray oder ein DataView, das die zu entschlüsselnden Daten enthält (auch bekannt als Chiffretext).

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

Wird ausgelöst, 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).

OperationError DOMException

Wird ausgelöst, wenn die Operation aus einem operationsspezifischen Grund fehlgeschlagen ist (z. B. Algorithmusparameter ungültiger Größen oder es gab einen Fehler beim Entschlüsseln des Chiffretexts).

Unterstützte Algorithmen

Die decrypt()-Methode unterstützt dieselben 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.

js
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.

js
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.

js
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.

js
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

BCD tables only load in the browser

Siehe auch