AES-Verschlüsselungstool — GCM, CBC & CTR
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.
Erweiterte Optionen
Verwenden Sie niemals einen IV mit demselben Schlüssel wieder. Leer lassen, um einen sicheren zufälligen IV zu erzeugen.
Was ist AES-Verschlüsselung?
AES (der Advanced Encryption Standard) ist eine symmetrische Blockchiffre, die 2001 von NIST in FIPS 197 standardisiert wurde und auf dem Rijndael-Design von Joan Daemen und Vincent Rijmen basiert. Er verschlüsselt Daten in festen 128-Bit-Blöcken mit einem 128-, 192- oder 256-Bit-Schlüssel, wobei derselbe Schlüssel sowohl verschlüsselt als auch entschlüsselt. Er ist das Arbeitspferd der modernen Kryptografie und schützt alles vom HTTPS-Verkehr bis zur Festplattenverschlüsselung.
Eine reine Blockchiffre verschlüsselt nur einen einzelnen 16-Byte-Block, daher läuft AES stets innerhalb eines Betriebsmodus, der Blöcke miteinander verkettet. Dieses Tool bietet drei davon an, allesamt nativ von der Web Crypto API des Browsers bereitgestellt: GCM, CBC und CTR. GCM (Galois/Counter Mode, NIST SP 800-38D) ist die empfohlene Standardeinstellung, weil er authentifiziert ist — er erzeugt neben dem Chiffretext einen 128-Bit-Authentifizierungs-Tag, sodass jede Manipulation beim Entschlüsseln erkannt wird. CBC und CTR bieten nur Vertraulichkeit; für sich genommen können sie Ihnen nicht sagen, ob der Chiffretext verändert wurde, weshalb TLS 1.3 (RFC 8446) jede CBC-Cipher-Suite zugunsten authentifizierter Modi wie GCM fallen ließ.
Sie werden bemerken, dass es hier keinen ECB-Modus gibt, und das ist Absicht. ECB verschlüsselt jeden identischen Klartextblock zum selben Chiffretextblock, sodass große Strukturen direkt durchscheinen — das berühmte „ECB-Pinguin“-Bild ist nach der Verschlüsselung immer noch deutlich als Pinguin erkennbar. Die Web Crypto API lässt ECB genau aus diesem Grund weg (sie implementiert nur AES-CBC, AES-CTR und AES-GCM), und wir tun das ebenfalls. Wenn Sie mit einem Altsystem interoperieren müssen, das ECB verwendet hat, betrachten Sie das als Grund, es zu migrieren, nicht als Vorlage, die Schwäche zu reproduzieren.
Da die meisten Menschen eine Passphrase eingeben statt eines 32-Byte-Zufallsschlüssels, leitet das Tool den AES-Schlüssel aus Ihrer Passphrase mit PBKDF2-HMAC-SHA256 bei 600.000 Iterationen und einem zufälligen 16-Byte-Salt ab, passend zu den aktuellen OWASP-Richtlinien zur Passwortspeicherung (und zu NIST SP 800-132, das einen Salt von mindestens 128 Bit verlangt). Das macht das Brute-Forcing einer schwachen Passphrase langsam, ist aber keine Magie: Dies ist ein Tool zum Lernen von Modi, zum Debuggen von Chiffretext und für einmalige persönliche Daten — nicht zum Schutz von Produktionsgeheimnissen, die in ein dediziertes Schlüsselverwaltungssystem gehören. Für eine starke Passphrase erzeugen Sie eine mit unserem Zufallspasswort-Generator; für einen echten Zufallsschlüssel verwenden Sie den Generator für geheime Schlüssel.
// AES-256-GCM 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 aesGcmEncrypt(plaintext, passphrase) {
const enc = new TextEncoder();
const salt = crypto.getRandomValues(new Uint8Array(16));
const iv = crypto.getRandomValues(new Uint8Array(12));
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, ['encrypt']);
const ct = new Uint8Array(await crypto.subtle.encrypt(
{ name: 'AES-GCM', iv }, key, enc.encode(plaintext)));
const packed = new Uint8Array([...salt, ...iv, ...ct]); // salt(16) | iv(12) | ct+tag
return btoa(String.fromCharCode(...packed)); // self-contained Base64
} Hauptfunktionen
Standardmäßig authentifizierte GCM-Verschlüsselung
GCM erzeugt den Chiffretext plus einen 128-Bit-Authentifizierungs-Tag, sodass die Entschlüsselung deutlich fehlschlägt, wenn auch nur ein Byte verändert wurde. CBC und CTR sind einen Klick entfernt, falls Sie mit ihnen interoperieren müssen.
In sich geschlossener Chiffretext
Der Passphrase-Modus packt den zufälligen Salt, den IV und den Tag in eine einzige Base64-Zeichenkette, sodass die entschlüsselnde Person nur die Passphrase braucht — es gibt keine separaten Felder zu kopieren oder zu verlieren.
Passphrase oder Rohschlüssel
Geben Sie eine Passphrase ein (gestreckt mit PBKDF2-HMAC-SHA256, 600.000 Iterationen) oder fügen Sie einen exakten 128/192/256-Bit-Schlüssel als Hex oder Base64 ein, mit einem Live-Byte-Anzahl-Badge, das die Länge bestätigt.
OpenSSL-kompatible Ausgabe
Aktivieren Sie den OpenSSL-Modus, um das Salted__-Format auszugeben, das der enc-Befehl von OpenSSL und CryptoJS lesen, mit dem entsprechenden CLI-Befehl live angezeigt, sodass Sie ihn in einem Terminal reproduzieren können.
100 % in Ihrem Browser
Jedes Byte wird lokal mit der Web Crypto API verschlüsselt. Öffnen Sie Ihren Network-Tab, und Sie werden sehen, dass nichts die Seite verlässt — es funktioniert sogar offline.
Base64- oder Hex-Ausgabe
Kopieren Sie das Ergebnis in der Kodierung, die Ihr Zielsystem erwartet, und prüfen Sie die Längen von Salt, IV, Chiffretext und Tag in der Segment-Aufschlüsselungsleiste.
Beispiele für AES-Verschlüsselung
GCM + Passphrase (in sich geschlossen, nicht-deterministisch)
The quick brown fox jumps over the lazy dog.
Salt (16 B) + IV (12 B) + Chiffretext + Tag (16 B), Base64-kodiert — bei jedem Durchlauf ein neuer Wert
Bei Modus GCM, Schlüsselgröße 256, Schlüsseltyp Passphrase und der Passphrase hunter2 wird dieser Satz zu einer einzigen, in sich geschlossenen Base64-Zeichenkette verschlüsselt. Verschlüsseln Sie ihn zweimal, erhalten Sie zwei völlig unterschiedliche Ergebnisse — das ist beabsichtigt. Der Passphrase-Modus erzeugt bei jeder Verschlüsselung einen frischen 16-Byte-Salt und einen frischen 12-Byte-IV, sodass identischer Klartext niemals identischen Chiffretext ergibt und ein Beobachter nicht erkennen kann, dass zwei Nachrichten gleich sind. Die Segmentleiste unter der Ausgabe zeigt den genauen Aufbau: zuerst Salt, dann IV, dann der Chiffretext mit seinem angehängten 128-Bit-GCM-Tag. Zum Entschlüsseln benötigt die Empfängerin oder der Empfänger nur die Passphrase sowie denselben Modus und dieselbe Schlüsselgröße — Salt, IV und Tag reisen alle innerhalb der Zeichenkette mit.
OpenSSL-kompatible Ausgabe (CBC + Passphrase)
Attack at dawn!
U2FsdGVkX18AESIzRFVmd1PBwxIFQpF+VgIhTK0aDHQ=
Aktivieren Sie den OpenSSL-kompatiblen Modus mit Modus CBC, Schlüsseltyp Passphrase, der Passphrase correct-horse, KDF PBKDF2 und 10.000 Iterationen. Das Tool gibt dann das OpenSSL-Format Salted__ aus: Base64, das immer mit U2FsdGVkX1 beginnt — der Base64-Kodierung des 8-Byte-Headers Salted__. Da jedes Mal ein frischer zufälliger 8-Byte-Salt erzeugt wird, ändert sich die genaue Zeichenkette bei jedem Durchlauf, aber jede davon lässt sich auf der Kommandozeile entschlüsseln mit: echo 'U2FsdGVkX18AESIzRFVmd1PBwxIFQpF+VgIhTK0aDHQ=' | openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -pass pass:correct-horse -base64 -A — was Attack at dawn! ausgibt. Wählen Sie EVP-MD5 statt PBKDF2, um mit CryptoJS oder OpenSSL 1.0.2 und älter kompatibel zu sein. Beachten Sie, dass openssl enc kein GCM unterstützt, weshalb der OpenSSL-Modus nur CBC bietet.
So verschlüsseln Sie Text mit AES
- 1
Modus und Schlüsselgröße wählen
Belassen Sie den Modus bei GCM (empfohlen) und die Schlüsselgröße bei 256 für die stärkste sinnvolle Standardeinstellung. Wechseln Sie nur dann zu CBC oder CTR, wenn ein Zielsystem dies erfordert.
- 2
Passphrase oder Rohschlüssel wählen
Belassen Sie den Schlüsseltyp bei Passphrase und geben Sie eine starke Passphrase ein, oder wechseln Sie zu Rohschlüssel und fügen Sie einen exakten 128/192/256-Bit-Schlüssel als Hex oder Base64 ein. Das Byte-Anzahl-Badge bestätigt, ob Ihr Rohschlüssel eine gültige Länge hat.
- 3
Zu verschlüsselnden Text eingeben
Geben Sie Ihren Klartext ein oder fügen Sie ihn ein. Die Verschlüsselung läuft automatisch beim Tippen, vollständig in Ihrem Browser — kein Button-Roundtrip und kein Upload.
- 4
In sich geschlossenen Chiffretext kopieren
Das Base64-Ergebnis rechts enthält bereits Salt, IV und Authentifizierungs-Tag. Nutzen Sie die Segmentleiste, um den Byte-Aufbau zu sehen, und klicken Sie dann auf Kopieren. Wechseln Sie die Ausgabekodierung zu Hex, wenn Ihr Zielsystem das erwartet.
- 5
Bei Bedarf wieder entschlüsseln
Geben Sie den Chiffretext, die Passphrase sowie denselben Modus und dieselbe Schlüsselgröße an die Empfängerin oder den Empfänger weiter, oder öffnen Sie die AES-Entschlüsselungsseite, um es selbst rückgängig zu machen.
Häufige Fehler bei der AES-Verschlüsselung
Eine Passphrase mit einem Rohschlüssel verwechseln
Ein Rohschlüssel muss genau 16, 24 oder 32 Byte zufälliger Daten sein (eingegeben als Hex oder Base64); eine Passphrase ist beliebiger Text und muss zunächst durch eine KDF gestreckt werden. Wählen Sie Rohschlüssel und fügen Sie eine von Menschen erdachte Passphrase ein, erzeugt das entweder einen Längenfehler oder einen schwachen Schlüssel.
Key type: Raw key Key (hex): correct horse battery staple (not hex, not 32 bytes)
Key type: Passphrase Passphrase: correct horse battery staple (stretched with PBKDF2)
Einen IV mit demselben Schlüssel wiederverwenden
Der IV muss pro Nachricht unter einem gegebenen Schlüssel eindeutig sein. Ihn wiederzuverwenden ist bei GCM fatal (es kann den Authentifizierungsschlüssel preisgeben) und bricht bei CBC und CTR die Vertraulichkeit. Lassen Sie das Tool jedes Mal einen frischen zufälligen IV erzeugen.
// same key, same IV for two messages encrypt(key, iv, a); encrypt(key, iv, b);
// fresh random IV each time (the default) encrypt(key, randomIV(), a);
Salt, IV oder Tag verlieren
Wenn Sie nur die Chiffretext-Bytes kopieren und den vorangestellten Salt/IV — oder den angehängten GCM-Tag — weglassen, können die Daten nie entschlüsselt werden. Behalten Sie die gesamte in sich geschlossene Zeichenkette, nicht nur ihren mittleren Teil.
stored = ciphertext // salt + IV + tag thrown away
stored = salt + iv + ciphertext + tag // the full Base64 string
Erwarten, dass die GCM-Ausgabe bei jedem Durchlauf übereinstimmt
GCM (und der Passphrase-Modus generell) verwendet einen zufälligen Salt und IV, sodass derselbe Text jedes Mal zu einer anderen Base64-Zeichenkette verschlüsselt wird. Das ist ein Sicherheitsmerkmal, kein Fehler — es bedeutet, dass ein Lauscher nicht erkennen kann, dass zwei Chiffretexte dieselbe Nachricht verschlüsseln.
assert(encrypt(msg) === encrypt(msg)) // fails — and should
assert(decrypt(encrypt(msg)) === msg) // this is what must hold
Was Sie mit AES-Verschlüsselung tun können
- Lernen, wie sich AES-Modi verhalten
- Wechseln Sie mit derselben Eingabe zwischen GCM, CBC und CTR, um zu sehen, wie sich Authentifizierung, IV-Länge und Chiffretextgröße ändern. Ein praktischer Weg, um zu verstehen, was NIST SP 800-38D tatsächlich vorgibt.
- Chiffretext erzeugen, den ein anderes System lesen kann
- Erzeugen Sie die Ausgabe im OpenSSL-Format Salted__ (oder als Rohschlüssel plus IV), sodass ein Backend, ein Skript oder eine Kollegin bzw. ein Kollege mit openssl oder einer Kryptobibliothek es reibungslos entschlüsseln kann.
- Eine kurze Notiz oder ein Snippet verschlüsseln
- Schützen Sie ein einmaliges Stück persönlichen Text — eine Wiederherstellungsphrase, die Sie zwischen Geräten verschieben, ein Snippet in einem Support-Ticket — mit einer Passphrase, die nur Sie kennen. Nicht für regulierte oder Produktionsgeheimnisse.
- Ein Verschlüsselungsformat prototypisch entwickeln
- Legen Sie hier Ihr Salt/IV/Tag-Layout und Ihre KDF-Einstellungen fest, bevor Sie den Code schreiben, und nutzen Sie die Segment-Aufschlüsselung, um Byte-Reihenfolge und -Längen zu bestätigen.
- Testvektoren erzeugen
- Erstellen Sie bekannten Chiffretext mit einer festen Passphrase und einem festen Modus, um Ihre eigenen Entschlüsselungstests zu speisen, und überprüfen Sie den Roundtrip dann auf der AES-Entschlüsselungsseite.
AES-Modi & Schlüsselableitung
- GCM (Galois/Counter Mode) — authentifiziert, empfohlen
- Vertraulichkeit plus ein 128-Bit-Authentifizierungs-Tag (NIST SP 800-38D). Es verwendet einen 96-Bit-(12-Byte-)IV, der bei jeder Verschlüsselung zufällig erzeugt wird, und sowohl Ver- als auch Entschlüsselung parallelisieren gut. Die eine Regel, die Sie niemals brechen dürfen: Verwenden Sie niemals einen IV mit demselben Schlüssel wieder. SP 800-38D begrenzt einen einzelnen Schlüssel auf etwa 2^32 zufällig erzeugte IVs, und eine Wiederholung gibt das XOR zweier Klartexte preis und kann sogar den Authentifizierungsschlüssel offenlegen, der den Tag schützt. Am besten für fast alles geeignet.
- CBC (Cipher Block Chaining) — nur Vertraulichkeit
- Jeder Block wird mit dem vorherigen Chiffretextblock XOR-verknüpft, unter Verwendung eines zufälligen 16-Byte-IV. Es gibt keine eingebaute Authentifizierung, daher muss es mit einem separaten MAC gepaart werden — Encrypt-then-MAC, zum Beispiel mit unserem HMAC-Generator — und es ist historisch anfällig für Padding-Oracle-Angriffe (Vaudenay, EUROCRYPT 2002). Hier zur Interoperabilität mit OpenSSL und älteren Systemen angeboten.
- CTR (Counter) — nur Vertraulichkeit, stromartig
- Verwandelt AES in eine Stromchiffre, indem ein Zähler verschlüsselt wird, sodass jede Bytelänge ohne Padding funktioniert und Blöcke frei parallelisieren. Wie CBC bietet es für sich genommen keine Integrität, und die Wiederverwendung von Zähler/IV unter einem Schlüssel ist katastrophal. Nützlich, wenn Sie wahlfreien Zugriff oder Streaming-Semantik benötigen.
- ECB — nicht angeboten (bewusst)
- Electronic Codebook verschlüsselt jeden Block unabhängig, sodass identische Klartextblöcke identischen Chiffretext ergeben und Muster durchsickern — der berüchtigte „ECB-Pinguin“. Die Web Crypto API implementiert es bewusst nicht, und wir ebenfalls nicht. Wenn ein Alt-System ECB erfordert, betrachten Sie das als Fehler, den es zu beheben gilt, nicht als Format, das reproduziert werden soll.
- Schlüsselableitung: 600.000 vs. 10.000 vs. 1 Iteration
- Im standardmäßigen Passphrase-Modus verwendet dieses Tool PBKDF2-HMAC-SHA256 bei 600.000 Iterationen (derselbe SHA-256-Hash, hunderttausende Male angewendet) mit einem 16-Byte-Salt, gemäß OWASP. Im OpenSSL-kompatiblen Modus verwendet PBKDF2 standardmäßig nur 10.000 Iterationen (die Standardeinstellung von openssl enc), und die veraltete KDF EVP_BytesToKey, die CryptoJS und altes OpenSSL verwenden, führt einen einzigen MD5-Durchlauf aus — um Größenordnungen schwächer. Mehr Iterationen bedeuten einen langsameren Brute-Force pro Versuch, weshalb der moderne Standard so viel höher ist. Argon2 und scrypt sind noch stärker, gehören aber nicht zu Web Crypto und liegen daher hier außerhalb des Umfangs; für die Passwortspeicherung folgen Sie OWASP und bevorzugen Argon2id.
Best Practices für AES-Verschlüsselung
- GCM bevorzugen, sofern kein Gegenüber etwas anderes verlangt
- Authentifizierte Verschlüsselung erkennt Manipulationen, die CBC und CTR stillschweigend durchlassen. Wechseln Sie nur für Interoperabilität zu CBC oder CTR, und fügen Sie in dem Fall einen MAC hinzu.
- Für jede Nachricht einen frischen zufälligen IV verwenden
- Das Tool erledigt dies automatisch. Wenn Sie den IV manuell überschreiben, verwenden Sie niemals einen mit demselben Schlüssel wieder — bei GCM ist eine Wiederholung katastrophal, und bei CBC bricht sie die semantische Sicherheit.
- Starke Passphrasen und echte Zufallsschlüssel wählen
- PBKDF2 verlangsamt Brute-Force, kann aber eine schwache Passphrase nicht retten. Erzeugen Sie eine lange Passphrase mit dem Passwort-Generator, oder einen echten Zufallsschlüssel mit dem Generator für geheime Schlüssel.
- Salt, IV und Tag beim Chiffretext behalten
- Sie sind nicht geheim, aber die Entschlüsselung schlägt ohne sie fehl. Das in sich geschlossene Format dieses Tools bündelt alle drei; wenn Sie den Modus mit Rohschlüssel und reinem Chiffretext verwenden, kopieren Sie den IV separat und speichern Sie ihn zusammen mit dem Chiffretext.
- Keine Produktions- oder regulierten Geheimnisse in einem Online-Tool verschlüsseln
- Selbst vollständig clientseitig ist ein Browser-Tool zum Lernen, Debuggen und für persönliche Einmalfälle gedacht. Echte Geheimnisse gehören in ein geprüftes Schlüsselverwaltungssystem mit auditierter Schlüsselverwaltung und -rotation. AES-256 selbst ist stark — zugelassen unter der CNSA-2.0-Suite der NSA für Informationen bis TOP SECRET — und reale Sicherheitsbrüche entstehen durch Implementierungsfehler, nicht durch die Chiffre.
AES-Verschlüsselung – FAQ
Ist es sicher, Text online zu verschlüsseln?
Kann AES ohne den Schlüssel entschlüsselt werden?
GCM vs. CBC — welchen Modus sollte ich verwenden?
AES-128 vs. AES-256 — lohnt sich 256?
Werden meine Daten hochgeladen, wenn ich hier verschlüssele?
Was ist der Unterschied zwischen einer Passphrase und einem Schlüssel?
Kann ich so verschlüsseln, dass OpenSSL oder CryptoJS es entschlüsseln können?
Verwandte Werkzeuge
Alle Werkzeuge anzeigen →AES-Entschlüsselungstool — OpenSSL- & CryptoJS-kompatibel
Sicherheitswerkzeuge
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.
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.