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.
Erweiterte Optionen
Verwenden Sie niemals einen IV mit demselben Schlüssel wieder. Leer lassen, um einen sicheren zufälligen IV zu erzeugen.
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
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
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
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
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
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.
mode: CBC // but the data was encrypted with GCM => Authentication failed
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.
iv: 00000000000000000000000000000000 (wrong IV) => first block corrupt, rest readable
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.
passphrase: hunter3 // one character off => padding error
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.
“U2FsdGVkX1...” (curly quotes and trailing junk copied in)
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.
OpenSSL compatible: off input: U2FsdGVkX1... => cannot parse
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.
KDF: PBKDF2 // CryptoJS ciphertext => padding error
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?
Wie entschlüssele ich die Ausgabe von openssl enc?
Was bedeutet U2FsdGVkX1 am Anfang eines Chiffretexts?
Wie entschlüssele ich CryptoJS-Chiffretext?
GCM vs. CBC — warum entschlüsselt mein Chiffretext auf die eine Art und nicht auf die andere?
Werden mein Chiffretext oder Schlüssel hochgeladen, wenn ich hier entschlüssele?
Was ist der Unterschied zwischen einer Passphrase und einem Rohschlüssel beim Entschlüsseln?
Verwandte Werkzeuge
Alle Werkzeuge anzeigen →AES-Verschlüsselungstool — GCM, CBC & CTR
Sicherheitswerkzeuge
Kostenloses Online-Tool für AES-Verschlüsselung — AES-128/192/256, GCM/CBC/CTR, Passphrase (PBKDF2) oder Rohschlüssel. Läuft zu 100 % im Browser; nichts wird hochgeladen.
Bcrypt-Hash-Generator & Verifizierer
Sicherheitswerkzeuge
Bcrypt-Passwort-Hashes online erzeugen und prüfen — einstellbarer Kostenfaktor, $2b$/$2a$/$2y$. 100 % im Browser; dein Passwort wird nie hochgeladen.
HMAC-Generator & Signaturprüfer
Sicherheitswerkzeuge
Kostenloser HMAC-Generator und -Prüfer online. Berechne HMAC-SHA256/SHA1/SHA384/SHA512 mit Schlüsseln als Text, Hex oder Base64 und Ausgabe als Hex/Base64/Base64URL. 100 % in deinem Browser — Schlüssel verlassen nie die Seite.
JWT-Dekodierer
Sicherheitswerkzeuge
Dekodieren Sie JWT-Token online mit unserem kostenlosen JWT-Dekodierer. Inspizieren Sie sofort Header, Payload, Signatur, Ablauf und Claims. 100 % Browser — Ihr Token verlässt niemals Ihr Gerät. Keine Anmeldung, kein Tracking.
JWT-Kodierer & -Generator
Sicherheitswerkzeuge
Kostenloser Online-JWT-Generator & -Kodierer. Erstellen Sie Header und Payload und signieren Sie sofort mit HS256, RS256 oder ES256. 100 % im Browser — Ihr Geheimnis und Ihr Schlüssel verlassen niemals Ihr Gerät.
JWT-Secret-Generator — HS256/384/512
Sicherheitswerkzeuge
Erzeuge ein starkes, RFC-konformes JWT-Secret für HS256/384/512 — 100 % im Browser, nie an einen Server gesendet. base64url, base64 oder hex; für .env kopieren.