Skip to content

AES-Entschlüsselungstool — OpenSSL- & CryptoJS-kompatibel

AES online entschlüsseln — GCM/CBC/CTR, Passphrase oder Rohschlüssel, erkennt automatisch das OpenSSL- & CryptoJS-Format „U2FsdGVkX1“. 100 % im Browser, Schlüssel verlassen die Seite nie.

Kein Tracking Läuft im Browser Kostenlos
Alles läuft in Ihrem Browser — Ihr Schlüssel und Ihre Daten verlassen diese Seite nie.
Empfohlen
Schlüsselgröße
Schlüsseltyp
Erweiterte Optionen
Klartext
Benötigen Sie die dedizierte Verschlüsselungsseite?
Auf kryptografische Korrektheit geprüft gegen FIPS 197, NIST SP 800-38D, OWASP und die W3C-Web-Crypto-Spezifikation — Go-Tools Security Team · Jul 16, 2026

Wie AES-Entschlüsselung funktioniert

AES-Entschlüsselung ist genau die Umkehrung der Verschlüsselung: Derselbe symmetrische Schlüssel, der die Daten verschlüsselt hat, durchläuft die Runden der Chiffre rückwärts, um die ursprünglichen Bytes wiederherzustellen. Da AES symmetrisch ist, gibt es keinen separaten „Entschlüsselungsschlüssel“ — Sie müssen genau den Schlüssel oder die Passphrase, den Modus und den IV angeben, die auch zum Verschlüsseln verwendet wurden. Stimmen die Parameter, kommt der Klartext Byte für Byte zurück; ist einer falsch, erhalten Sie einen Fehler oder unbrauchbare Daten.

Um korrekt zu entschlüsseln, müssen vier Dinge exakt mit der Verschlüsselung übereinstimmen: der Schlüssel (oder die Passphrase samt ihren Schlüsselableitungseinstellungen), der Betriebsmodus (GCM, CBC oder CTR), der IV bzw. die Nonce und — bei GCM — der Authentifizierungs-Tag. Fehlt eines davon, ist das Ergebnis entweder ein harter Fehler (ein GCM-Authentifizierungsfehler, ein CBC-Padding-Fehler) oder stiller Datenmüll (CTR, oder CBC mit dem falschen IV). Dieses Tool liest Salt, IV und Tag für Sie aus dem Chiffretext, wenn sie darin enthalten sind, und diagnostiziert den Fehlschlag, wenn etwas nicht zusammenpasst.

Chiffretext kommt in ein paar unterschiedlichen Formen an, und dieses Tool versteht drei davon. Format 1 ist unser in sich geschlossenes Passphrase-Layout: ein 16-Byte-Salt, dann der IV, dann der Chiffretext (mit dem angehängten GCM-Tag im GCM-Modus) — entschlüsseln Sie ihn nur mit der Passphrase. Format 2 ist das Rohschlüssel-Layout: der IV dem Chiffretext vorangestellt, oder „reiner“ Chiffretext, bei dem Sie den IV separat angeben. Format 3 ist das OpenSSL-Layout, erzeugt vom Befehl openssl enc und von CryptoJS.

Dieses OpenSSL-Format sollte man auf einen Blick erkennen. Es beginnt mit den 8 ASCII-Bytes Salted__, gefolgt von einem 8-Byte-Salt und dann dem Chiffretext, und wenn das Ganze Base64-kodiert wird, ergeben diese ersten Bytes immer das Präfix U2FsdGVkX1. Beginnt ein Chiffretext, den man Ihnen gegeben hat, also mit U2FsdGVkX1, wurde er fast sicher von openssl enc oder einem Aufruf von CryptoJS AES.encrypt(text, passphrase) erzeugt. CryptoJS leitet seinen Schlüssel mit der veralteten Funktion EVP_BytesToKey und einem einzigen MD5-Durchlauf ab, während modernes openssl PBKDF2 verwendet — weshalb die Wahl der richtigen Schlüsselableitungsfunktion beim Entschlüsseln dieser Daten die ganze Herausforderung ist. Wenn Ihre Eingabe Base64 ist und Sie einfach nur die rohen Bytes sehen möchten, zeigt sie Ihnen unser Base64-Dekodierer. Um Chiffretext in diesen Formaten zu erzeugen, verwenden Sie das AES-Verschlüsselungstool.

// AES-256-GCM decrypt with a passphrase (PBKDF2-HMAC-SHA256, 600,000 iterations).
// Identical code runs in the browser and in Node.js 20+ via Web Crypto.
async function aesGcmDecrypt(base64, passphrase) {
  const enc = new TextEncoder();
  const packed = Uint8Array.from(atob(base64), (c) => c.charCodeAt(0));
  const salt = packed.slice(0, 16), iv = packed.slice(16, 28); // salt(16) | iv(12)
  const ct = packed.slice(28);                                 // ciphertext + tag
  const baseKey = await crypto.subtle.importKey(
    'raw', enc.encode(passphrase), 'PBKDF2', false, ['deriveKey']);
  const key = await crypto.subtle.deriveKey(
    { name: 'PBKDF2', salt, iterations: 600000, hash: 'SHA-256' },
    baseKey, { name: 'AES-GCM', length: 256 }, false, ['decrypt']);
  const plain = await crypto.subtle.decrypt(
    { name: 'AES-GCM', iv }, key, ct);        // throws if the tag fails
  return new TextDecoder().decode(plain);     // recovered plaintext
}

Hauptfunktionen

Erkennt OpenSSL- & CryptoJS-Ausgabe automatisch

Fügen Sie Chiffretext ein, der mit U2FsdGVkX1 beginnt, und das Tool erkennt das Salted__-Format und bietet einen Ein-Klick-Wechsel zum passenden Entschlüsselungsablauf an, sodass Sie nie gegen eine Sackgassen-Fehlermeldung kämpfen.

Drei Schlüsselableitungsfunktionen

Entschlüsseln Sie über jede Generation des openssl-enc-Formats hinweg: PBKDF2 mit einer benutzerdefinierten Iterationszahl, EVP_BytesToKey mit SHA-256 oder den veralteten MD5-Einzeldurchlauf, den CryptoJS verwendet.

Erklärt, warum die Entschlüsselung fehlgeschlagen ist

Statt einer allgemeinen Fehlermeldung erhalten Sie eine Diagnose: falscher Schlüssel gegenüber falschem IV, ein GCM-Authentifizierungsfehler, ein CBC-Padding-Fehler, Base64-Verunreinigung oder „das sieht nach einem Chiffretext aus der MD5-Ära aus, versuchen Sie EVP-MD5“.

Entsprechender openssl-Befehl live angezeigt

Sehen Sie den exakten Befehl openssl enc -d, der die Entschlüsselung auf der Kommandozeile reproduziert, samt Iterationszahl, sodass Sie das Ergebnis außerhalb des Browsers überprüfen können.

Passphrase oder Rohschlüssel, GCM/CBC/CTR

Verarbeitet in sich geschlossenen Passphrase-Chiffretext, Rohschlüssel-Chiffretext mit vorangestelltem oder separat angegebenem IV sowie alle drei Web-Crypto-Modi.

100 % in Ihrem Browser

Chiffretext und Schlüssel werden lokal mit der Web Crypto API verarbeitet und nie hochgeladen — Sie können das mit dem Network-Tab oder durch Offline-Gehen überprüfen.

Beispiele für AES-Entschlüsselung

Einen in sich geschlossenen Passphrase-Chiffretext entschlüsseln (GCM)

Salt(16) ‖ IV(12) ‖ Chiffretext ‖ Tag(16), Base64 — von der Verschlüsselungsseite
The quick brown fox jumps over the lazy dog.

Dies ist die Umkehrung des GCM-Beispiels der Verschlüsselungsseite. Nehmen Sie die in sich geschlossene Base64-Zeichenkette, die dort für die Passphrase hunter2 erzeugt wurde, fügen Sie sie hier mit Modus GCM, Schlüsselgröße 256, Schlüsseltyp Passphrase und derselben Passphrase hunter2 ein, und der ursprüngliche Satz kommt zurück. Sie geben Salt oder IV nicht separat ein — das Tool liest den 16-Byte-Salt und den 12-Byte-IV vom Anfang der Zeichenkette, leitet den Schlüssel mit PBKDF2-HMAC-SHA256 (600.000 Iterationen) ab und überprüft den angehängten 128-Bit-GCM-Tag, bevor irgendein Text zurückgegeben wird. Klicken Sie auf der Verschlüsselungsseite auf Beispiel laden, um eine neue Zeichenkette zu erzeugen, und entschlüsseln Sie sie dann hier.

Echte OpenSSL-/PBKDF2-Ausgabe entschlüsseln

U2FsdGVkX18AESIzRFVmd1PBwxIFQpF+VgIhTK0aDHQ=
Attack at dawn!

Dies ist echte openssl-enc-Ausgabe. Fügen Sie sie ein, wechseln Sie zum OpenSSL-Modus (Modus CBC, Schlüsseltyp Passphrase), geben Sie die Passphrase correct-horse ein, wählen Sie die Schlüsselableitungsfunktion PBKDF2 und stellen Sie die Iterationen auf 10.000 — der Klartext ist Attack at dawn!. Das Präfix U2FsdGVkX1 hat dem Tool mitgeteilt, dass es sich um das Salted__-Format handelt, und der 8-Byte-Salt sitzt direkt hinter diesem Header innerhalb des Base64. Sie können die exakte Entschlüsselung auf der Kommandozeile reproduzieren: echo 'U2FsdGVkX18AESIzRFVmd1PBwxIFQpF+VgIhTK0aDHQ=' | openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -pass pass:correct-horse -base64 -A. Wenn ein ähnlicher Chiffretext mit PBKDF2 fehlschlägt, wurde er wahrscheinlich von CryptoJS erzeugt — wechseln Sie die KDF zu EVP-MD5 und versuchen Sie es erneut. Klicken Sie auf OpenSSL-Beispiel laden, um diese Werte automatisch auszufüllen.

So entschlüsseln Sie AES-Chiffretext

  1. 1

    Chiffretext einfügen

    Legen Sie Ihren Base64- oder Hex-Chiffretext in das Eingabefeld. Beginnt er mit U2FsdGVkX1, markiert ihn das Tool als OpenSSL/CryptoJS-Format und bietet an, Sie in den richtigen Modus zu wechseln.

  2. 2

    Format und Modus festlegen

    Bei einer in sich geschlossenen Zeichenkette dieses Tools belassen Sie den Passphrase-Modus und den passenden GCM-/CBC-/CTR-Modus. Bei OpenSSL-/CryptoJS-Ausgabe nehmen Sie den Wechsel an (CBC + Passphrase). Bei Rohschlüssel-Daten wählen Sie Rohschlüssel und die Kodierung und geben den IV an, falls er nicht vorangestellt ist.

  3. 3

    Die Schlüsselableitungsfunktion wählen

    Wählen Sie im OpenSSL-Modus PBKDF2 (und dessen Iterationszahl), EVP-SHA256 oder EVP-MD5, passend dazu, wie der Schlüssel abgeleitet wurde. EVP-MD5 ist die Funktion, die CryptoJS verwendet.

  4. 4

    Passphrase oder Schlüssel eingeben

    Geben Sie die exakte Passphrase ein, oder fügen Sie den exakten Rohschlüssel als Hex oder Base64 ein. Der Klartext erscheint rechts, sobald alles übereinstimmt.

  5. 5

    Bei einem Fehlschlag die Diagnose lesen

    Schlägt die Entschlüsselung fehl, nennt das Panel die wahrscheinliche Ursache — falscher IV, falscher Schlüssel, Padding-Fehler, Base64-Verunreinigung oder eine falsche KDF —, sodass Sie eine Einstellung nach der anderen anpassen können, statt zu raten.

Warum die AES-Entschlüsselung fehlschlägt — und wie Sie es beheben

GCM-Authentifizierung fehlgeschlagen

GCM verweigert die Rückgabe von Klartext, wenn der Tag nicht verifiziert werden kann. Die Ursache ist eine falsche Passphrase oder ein falscher Schlüssel, der falsche Modus, ein falscher IV oder veränderter/abgeschnittener Chiffretext — GCM kann nicht sagen, welches davon. Überprüfen Sie jedes einzeln gegen die Art, wie die Daten verschlüsselt wurden.

✗ Falsch
mode: CBC        // but the data was encrypted with GCM
=> Authentication failed
✓ Richtig
mode: GCM, same passphrase and key size as encryption
=> plaintext

CBC: ein verstümmelter erster Block bedeutet den falschen IV

Bei CBC beeinflusst der IV nur den ersten 16-Byte-Block. Ist Block eins unbrauchbar, der Rest aber sauber dekodiert, ist Ihr IV falsch; ist alles unbrauchbar, ist der Schlüssel falsch.

✗ Falsch
iv: 00000000000000000000000000000000   (wrong IV)
=> first block corrupt, rest readable
✓ Richtig
iv: (the exact IV used to encrypt)
=> Attack at dawn!

CBC-/PKCS#7-Padding-Fehler

Ein Padding-Fehler bedeutet fast immer, dass der Schlüssel falsch ist; er kann auch bedeuten, dass der Chiffretext beschädigt, abgeschnitten oder nicht PKCS#7-gepolstert war. Bestätigen Sie, dass der vollständige Chiffretext kopiert wurde und dass Passphrase und KDF übereinstimmen.

✗ Falsch
passphrase: hunter3   // one character off
=> padding error
✓ Richtig
passphrase: hunter2   // exact
=> plaintext

Base64- (oder Hex-)Verunreinigung

Zeilenumbrüche, Leerzeichen oder typografische Anführungszeichen, die zusammen mit dem Chiffretext eingefügt wurden, stören die Dekodierung. Das Tool entfernt Leerraum automatisch, aber fehlende oder zusätzliche Zeichen führen weiterhin zu Fehlern.

✗ Falsch
“U2FsdGVkX1...”   (curly quotes and trailing junk copied in)
✓ Richtig
U2FsdGVkX18AESIzRFVmd1PBwxIFQpF+VgIhTK0aDHQ=   (clean Base64)

U2FsdGVkX1 erkannt, aber OpenSSL-Modus ist aus

Beginnt die Eingabe mit U2FsdGVkX1, betrachten Sie OpenSSL-/CryptoJS-Salted__-Ausgabe, die sich nicht als normale Passphrase-Zeichenkette entschlüsseln lässt. Das Tool zeigt ein Banner; klicken Sie auf Zu OpenSSL-Modus wechseln und wählen Sie die KDF.

✗ Falsch
OpenSSL compatible: off
input: U2FsdGVkX1...
=> cannot parse
✓ Richtig
OpenSSL compatible: on, KDF chosen
=> plaintext

KDF-Fehlanpassung (die CryptoJS-Falle)

Ein Chiffretext, der mit PBKDF2 oder SHA-256 fehlschlägt, aber mit EVP-MD5 entschlüsselt, wurde von CryptoJS oder openssl 1.0.2 und früher erzeugt. Auf der Kommandozeile benötigen diese -md md5.

✗ Falsch
KDF: PBKDF2       // CryptoJS ciphertext
=> padding error
✓ Richtig
KDF: EVP-MD5      // matches CryptoJS
=> plaintext

Was Sie mit AES-Entschlüsselung tun können

Die Ausgabe von openssl enc entschlüsseln
Lesen Sie einen Salted__-Blob, der von openssl enc -aes-256-cbc erzeugt wurde, ohne ein Terminal zu öffnen: Fügen Sie das Base64 ein, geben Sie die Passphrase ein, wählen Sie die KDF, und erhalten Sie Ihren Klartext.
CryptoJS-Chiffretext entschlüsseln
Stellen Sie Daten aus einer Legacy-App wieder her, die CryptoJS AES.encrypt(text, passphrase) verwendet hat. Wählen Sie EVP-MD5, um ihre Einzeldurchlauf-MD5-Schlüsselableitung nachzubilden — der Schritt, den die meisten Menschen übersehen.
Eine ständig fehlschlagende Entschlüsselung debuggen
Wenn Ihr eigener Code etwas nicht entschlüsseln kann, fügen Sie es hier ein, um mithilfe des Diagnose-Panels zu isolieren, ob das Problem am Schlüssel, am IV, am Modus, an der Kodierung oder an der KDF liegt.
Einen Verschlüsselungs-Roundtrip überprüfen
Bestätigen Sie, dass Chiffretext von der AES-Verschlüsselungsseite oder aus Ihrer App wieder zu den exakten ursprünglichen Bytes entschlüsselt.
Einen unbekannten Chiffretext verstehen
Identifizieren Sie ein Format anhand seiner Form — ein U2FsdGVkX1-Präfix oder ein Präfix fester Länge, das wie ein IV aussieht —, und finden Sie heraus, wie er erzeugt wurde, bevor Sie einen Schlüssel ausprobieren.

AES-Entschlüsselung – Interna & Formate

GCM-Entschlüsselung — authentifiziert
GCM berechnet den 128-Bit-Tag über dem Chiffretext neu und vergleicht ihn, bevor irgendein Klartext zurückgegeben wird; bei einer Abweichung wird ein Fehler ausgelöst, statt beschädigte Daten preiszugeben. Es verwendet den vorangestellten 96-Bit-IV. Ein GCM-Fehlschlag bedeutet, dass Schlüssel, Modus, IV oder Chiffretext falsch sind — die Chiffre selbst kann Ihnen nicht sagen, welches davon.
CBC-Entschlüsselung — auf den ersten Block und das Padding achten
CBC hat zwei unterschiedliche Fehlerbilder. Ist nur der erste 16-Byte-Block verstümmelt und der Rest sieht korrekt aus, war der IV falsch. Ist jeder Block unbrauchbar, ist der Schlüssel falsch. Ein PKCS#7-Padding-Fehler bedeutet meist, dass der Schlüssel falsch ist oder der Chiffretext beschädigt oder abgeschnitten wurde. CBC hat keinen Tag (anders als eine authentifizierte Konstruktion wie ein HMAC), sodass ein falscher Schlüssel sogar zu plausibel aussehenden Bytes entschlüsseln kann.
CTR-Entschlüsselung — still bei Fehlern
CTR löst nie einen Fehler aus: Ein falscher Schlüssel liefert einfach unbrauchbare Daten, was sich meist als Fehler „kein gültiges UTF-8“ zeigt, sobald die Bytes zu Text dekodiert werden. Stimmen Sie Zähler/IV exakt ab. Da es keine Integritätsprüfung gibt, behandeln Sie jede nicht separat authentifizierte CTR-Ausgabe mit Vorsicht.
Chiffretext-Layouts (F1 / F2 / F3)
Format 1 (Passphrase) ist Salt(16), dann IV, dann Chiffretext, mit dem angehängten 16-Byte-GCM-Tag im GCM-Modus. Format 2 (Rohschlüssel) ist IV, dann Chiffretext, oder reiner Chiffretext mit separat angegebenem IV. Format 3 (OpenSSL) ist der ASCII-Header Salted__, dann ein 8-Byte-Salt, dann der Chiffretext. Zu wissen, welches Layout Sie haben, sagt dem Tool, wo Salt und IV liegen, und ein Rohschlüssel sollte selbst aus einem CSPRNG stammen — siehe den Generator für geheime Schlüssel.
Schlüsselableitung: passend zur Verschlüsselung wählen
Für in sich geschlossenen Passphrase-Chiffretext verwendet dieses Tool PBKDF2-HMAC-SHA256 bei 600.000 Iterationen. Bei OpenSSL-/CryptoJS-Chiffretext müssen Sie die verwendete KDF auswählen: PBKDF2 (der Standard von openssl -pbkdf2 ist 10.000 Iterationen — stellen Sie Ihre exakte Zahl ein), EVP_BytesToKey mit SHA-256 (openssl 1.1+ ohne -pbkdf2), oder EVP_BytesToKey mit MD5 und einem einzigen Durchlauf (CryptoJS und openssl 1.0.2 und früher). Der klassische Fehler „lässt sich nicht entschlüsseln“ ist ein CryptoJS- oder Alt-openssl-Chiffretext, der mit SHA-256 versucht wird — wechseln Sie zu EVP-MD5, und es funktioniert.

Best Practices für AES-Entschlüsselung

Zuerst das Format identifizieren
Bevor Sie Einstellungen ändern, betrachten Sie den Chiffretext. Ein U2FsdGVkX1-Präfix bedeutet OpenSSL/CryptoJS; eine in sich geschlossene Zeichenkette aus diesem Tool ist Passphrase-Format; ein reiner Blob benötigt meist einen Rohschlüssel und einen separaten IV.
Die Schlüsselableitungsfunktion exakt abgleichen
Bei OpenSSL-/CryptoJS-Chiffretext ist die KDF genauso wichtig wie die Passphrase. Schlägt PBKDF2 fehl, versuchen Sie EVP-MD5 (CryptoJS, altes openssl); auch die Iterationszahl muss übereinstimmen, nicht nur der Algorithmus.
Den Chiffretext sauber einfügen
Versehentliche Zeilenumbrüche oder Leerzeichen beim Kopieren können Base64 beschädigen. Dieses Tool entfernt Leerraum automatisch, aber wenn die Dekodierung weiterhin fehlschlägt, prüfen Sie auf typografische Anführungszeichen, fehlende Zeichen oder eine abgeschnittene Kopie. Unser Base64-Tool kann Ihnen helfen, eine verdächtige Zeichenkette zu untersuchen.
Ein falsches Schlüsselergebnis ehrlich behandeln
Bei CTR oder CBC kann ein falscher Schlüssel Bytes statt eines Fehlers erzeugen. Sieht die Ausgabe nach Datenmüll aus oder scheitert am UTF-8-Test, ist der Schlüssel oder IV falsch — vertrauen Sie keiner teilweise plausibel aussehenden Ausgabe.
Niemals geheimen Chiffretext oder Schlüssel an einen Server senden
Der Sinn der Entschlüsselung im Browser ist, dass nichts die Seite verlässt. Meiden Sie Tools, die hochladen; dieses hier verwendet Web Crypto lokal, und Sie können das mit dem Network-Tab oder durch Offline-Gehen überprüfen. AES-256 ist stark — CNSA-2.0-zugelassen für TOP SECRET —, wenn Sie also nicht entschlüsseln können, liegt das Problem an den Parametern, nicht an der Chiffre.

AES-Entschlüsselung – FAQ

Kann man AES ohne den Schlüssel entschlüsseln?
Nein — und seien Sie vorsichtig bei allen, die etwas anderes behaupten. AES hat keine bekannte praktische Schwachstelle, daher bleibt ohne den Schlüssel oder die Passphrase nur Brute-Force, und die Zahlen machen das aussichtslos: AES-256 hat 2^256 mögliche Schlüssel, ein so großer Raum, dass selbst astronomisch schnelles Raten weit länger als das Alter des Universums bräuchte, um auch nur einen kleinen Teil davon abzudecken. Es gibt kein „Passwort vergessen“ für AES und keinen seriösen Dienst, der beliebigen AES-Chiffretext für Sie entschlüsselt. Wenn Sie den Schlüssel verloren haben, sind die Daten weg; wenn Sie ihn haben, entschlüsselt dieses Tool in Ihrem Browser. Schlägt die Entschlüsselung trotz vorhandenem Schlüssel fehl, liegt es fast immer am falschen Modus, IV oder an der falschen Schlüsselableitungsfunktion — nicht an einer gebrochenen Chiffre.
Wie entschlüssele ich die Ausgabe von openssl enc?
Fügen Sie den Base64-Chiffretext ein (er beginnt mit U2FsdGVkX1) und nehmen Sie den Vorschlag des Tools an, zum OpenSSL-Modus zu wechseln, oder aktivieren Sie den OpenSSL-kompatiblen Modus manuell mit Modus CBC und Schlüsseltyp Passphrase. Geben Sie die Passphrase ein und wählen Sie dann die Schlüsselableitungsfunktion, die openssl verwendet hat: PBKDF2, wenn die Datei mit -pbkdf2 erzeugt wurde (stellen Sie dieselbe Iterationszahl ein — der Standard ist 10.000), oder EVP-SHA256 für eine einfache OpenSSL-1.1+-Datei ohne -pbkdf2. Das Tool zeigt den exakten Befehl openssl enc -d, den es nachbildet. Zum Beispiel gibt echo 'U2FsdGVkX18AESIzRFVmd1PBwxIFQpF+VgIhTK0aDHQ=' | openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -pass pass:correct-horse -base64 -A Attack at dawn! aus.
Was bedeutet U2FsdGVkX1 am Anfang eines Chiffretexts?
Es ist der Fingerabdruck des OpenSSL-Formats Salted__. OpenSSL und CryptoJS stellen ihrem Chiffretext die 8 ASCII-Bytes Salted__ gefolgt von einem 8-Byte-Salt voran, und wenn das Ganze Base64-kodiert wird, ergeben die führenden Bytes immer das Präfix U2FsdGVkX1. Wenn Sie es sehen, sagt Ihnen das zweierlei: Die Daten wurden vom Befehl openssl enc oder einem Aufruf von CryptoJS AES.encrypt(text, passphrase) erzeugt, und der Schlüssel wurde aus einer Passphrase abgeleitet — Sie benötigen also die Passphrase plus die richtige Schlüsselableitungsfunktion, keinen Rohschlüssel. Fügen Sie ihn ein, und dieses Tool erkennt das Format automatisch und bietet an, Sie in den passenden Ablauf zu wechseln.
Wie entschlüssele ich CryptoJS-Chiffretext?
CryptoJS' AES.encrypt(text, passphrase) verwendet das OpenSSL-Format Salted__, jedoch mit einem Schlüssel, der von der veralteten Funktion EVP_BytesToKey mit MD5 und nur einer einzigen Iteration abgeleitet wird. Fügen Sie also den Chiffretext ein, wechseln Sie zum OpenSSL-Modus und wählen Sie die Schlüsselableitungsfunktion EVP-MD5 — das ist die Einstellung, die fast jeder übersieht, und deshalb scheint sich CryptoJS-Chiffretext „nicht entschlüsseln zu lassen“, wenn er mit PBKDF2 oder SHA-256 versucht wird. Geben Sie dieselbe Passphrase ein, und Ihr Klartext erscheint. Auf der Kommandozeile benötigt die entsprechende Entschlüsselung -md md5.
GCM vs. CBC — warum entschlüsselt mein Chiffretext auf die eine Art und nicht auf die andere?
Der Modus muss dazu passen, wie die Daten verschlüsselt wurden; die beiden sind nicht austauschbar. GCM enthält einen 128-Bit-Authentifizierungs-Tag und verweigert die Entschlüsselung (Authentifizierungsfehler), wenn Sie den falschen Modus, Schlüssel oder IV wählen. CBC hat keinen Tag, daher kann eine falsche Wahl stillschweigend unbrauchbare Daten oder einen Padding-Fehler erzeugen, statt eines eindeutigen Fehlschlags. Schlägt die GCM-Authentifizierung ständig fehl, bestätigen Sie, dass die Daten wirklich GCM sind; treten bei CBC Padding-Fehler auf, überprüfen Sie die Passphrase und die Schlüsselableitungsfunktion erneut. Das Diagnose-Panel dieses Tools weist Sie auf die wahrscheinlichste Ursache hin, statt einen allgemeinen Fehler auszugeben.
Werden mein Chiffretext oder Schlüssel hochgeladen, wenn ich hier entschlüssele?
Nein. Die Entschlüsselung läuft vollständig in Ihrem Browser über die Web Crypto API (crypto.subtle) — dieselbe geprüfte Engine, die Ihr Browser für HTTPS verwendet. Ihr Chiffretext, Ihre Passphrase und Ihr Schlüssel werden nie irgendwohin gesendet — Sie können beobachten, wie der Network-Tab leer bleibt, oder sich vom Internet trennen und offline entschlüsseln. Dieses rein lokale Design macht es vertretbar, sensiblen Chiffretext hier einzufügen, auch wenn Sie den Umgang mit Produktionsgeheimnissen in jedem Online-Tool weiterhin vermeiden sollten.
Was ist der Unterschied zwischen einer Passphrase und einem Rohschlüssel beim Entschlüsseln?
Er bestimmt, wie Sie das Geheimnis eingeben. Wurden die Daten aus einer Passphrase heraus verschlüsselt (einschließlich allem im U2FsdGVkX1-Format), wählen Sie Passphrase und lassen Sie das Tool den Schlüssel mit der passenden KDF und dem passenden Salt ableiten. Wurden sie mit einem exakten 128/192/256-Bit-Schlüssel verschlüsselt, wählen Sie Rohschlüssel und fügen Sie diese Bytes als Hex oder Base64 ein — und Sie müssen möglicherweise auch den IV angeben, entweder dem Chiffretext vorangestellt oder separat eingegeben. Zu versuchen, Passphrase-Daten mit einem Rohschlüssel zu entschlüsseln, oder umgekehrt, ist ein häufiger Grund, warum die Entschlüsselung fehlschlägt. Um Chiffretext in beiden Formen zu erzeugen, verwenden Sie das AES-Verschlüsselungstool.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →