Text ver- und entschlüsseln

Fünf Passphrase-Chiffren auf einem Bildschirm: AES, DES, RC4, Rabbit und TripleDES. Algorithmus wählen, Text einfügen, Verschlüsseln drücken — das Ergebnis steht darunter. Dasselbe Ergebnis mit derselben Passphrase und Entschlüsseln liefert den Originaltext zurück.

Die Chiffren laufen in der Seite über CryptoJS. Text und Passphrase verlassen den Browser nicht, deshalb arbeitet das Werkzeug auch ohne Netz weiter.

  1. Text oben einfügen oder eintippen. AES ist voreingestellt; ein anderer Algorithmus nur, wenn vorhandener Geheimtext nachgebildet werden soll.
  2. Die Passphrase in das Schlüsselfeld eintragen. Dieselbe Passphrase ist später zum Zurücklesen nötig — gespeichert wird hier nichts.
  3. Verschlüsseln drücken. Die Ausgabe ist Base64 und beginnt mit U2FsdGVkX1, der Kennung des gesalzenen Containers im OpenSSL-Stil.
  4. Für den Rückweg den Geheimtext in dasselbe Feld einfügen, den erzeugenden Algorithmus wählen und Entschlüsseln drücken.

Was die Ausgabe tatsächlich ist

Gesalzener Container und zufälliges Salt

Jedes Ergebnis ist ein Container im OpenSSL-Stil: die acht Bytes Salted__ (U2FsdGVkX1 in Base64), acht zufällige Salt-Bytes und danach der Geheimtext. Schlüssel und IV entstehen aus Passphrase und Salt über EVP_BytesToKey mit MD5 — dieselbe Ableitung, die openssl enc mit -md md5 verwendet.

Weil das Salt zufällig ist, ergibt derselbe Text mit derselben Passphrase jedes Mal eine andere Zeichenkette. Zwei gleiche Ausgaben wären ein Fehler; verschiedene sind zu erwarten.

Welche Chiffre wirklich läuft

AES ist aes-256-cbc, DES ist des-cbc und TripleDES ist des-ede3-cbc — alle drei entschlüsselt OpenSSL, etwa mit openssl enc -d -aes-256-cbc -md md5 -k "Passphrase". RC4 arbeitet hier mit 256 Bit Schlüssellänge, doppelt so viel wie die 128 Bit, die openssl enc -rc4 standardmäßig ableitet; dieser Befehl liest die Ausgabe deshalb nicht zurück. Rabbit gibt es nur in CryptoJS und hat keine OpenSSL-Entsprechung.

AES, DES und TripleDES sind Blockchiffren im CBC-Modus mit PKCS#7-Padding; RC4 und Rabbit sind Stromchiffren, ihre Ausgabe ist so lang wie der Klartext.

Entschlüsseln mit falscher Passphrase

AES, DES und TripleDES scheitern an der Padding-Prüfung und liefern nichts; RC4 und Rabbit erzeugen Bytes, die fast nie gültiges UTF-8 sind. In beiden Fällen meldet die Seite den Fehler und leert die Ausgabe, statt den vorigen Klartext stehen zu lassen.

Der Container hat keine Integritätsprüfung — weder MAC noch authentifiziertes Tag —, ein veränderter Geheimtext fällt also nicht auf, und eine falsche Passphrase ist von beschädigten Daten nicht zu unterscheiden. Prüfen Sie eine kleine bekannte Stichprobe, bevor ein entschlüsselter Wert in eine automatische Verarbeitung geht.

Was die Seite nicht leistet

Sie arbeitet mit Text, nicht mit Dateien, und signiert, verifiziert oder speichert nichts: keine Historie, kein hinterlegter Schlüssel, kein Ergebnis nach dem Neuladen.

DES, RC4 und TripleDES bleiben für bestehende Daten verfügbar. Ein aus einer Passphrase abgeleiteter Schlüssel im CBC-Modus ist keine moderne Konstruktion; für Neues sind AES-GCM oder ChaCha20-Poly1305 die richtige Wahl, die diese Seite nicht erzeugen kann.

Zuletzt verwendet: