Text mit Rabbit ver- und entschlüsseln

Ein Feld für den Text und eines für das Passwort: Verschlüsseln macht aus Klartext einen CryptoJS-Rabbit-Geheimtext, Entschlüsseln liest ihn als UTF-8-Text zurück. Alles läuft in der Seite.

Das Passwort wird nirgends gespeichert, und jeder Lauf nutzt ein neues zufälliges Salt – derselbe Text mit demselben Passwort ergibt also jedes Mal einen anderen Geheimtext.

  1. Fügen Sie oben den Text ein, den Sie verschlüsseln möchten, oder einen vorhandenen Rabbit-Geheimtext, der mit U2FsdGVkX1 beginnt.
  2. Tragen Sie das Passwort im Feld neben den Schaltflächen ein. Der Schlüssel wird daraus abgeleitet, zum Zurücklesen brauchen Sie also dasselbe Passwort.
  3. Drücken Sie Verschlüsseln oder Entschlüsseln. Das Ergebnis ersetzt das vorige, und ein fehlgeschlagener Lauf leert es, statt alten Text stehen zu lassen.
  4. Kopieren legt das Ergebnis in die Zwischenablage; Leeren entfernt beide Eingaben und das Ergebnis.

Was die Ausgabe wirklich ist

Der Salted__-Container und sein zufälliges Salt

Die Ausgabe ist der Container, den CryptoJS für passwortbasierte Verfahren schreibt: die acht ASCII-Bytes Salted__ (U2FsdGVkX1 in Base64), acht zufällige Salt-Bytes und der Geheimtext, alles Base64-kodiert.

Der 128-Bit-Schlüssel und der 64-Bit-IV werden mit einer MD5-basierten EVP_BytesToKey-Ableitung aus Passwort und Salt gewonnen; das Passwort ist also nie direkt der Schlüssel. Zwei Läufe desselben Textes unterscheiden sich, weil das Salt jedes Mal neu ist – das ist zu erwarten, kein Fehler.

Was die Seite prüfen kann und was nicht

Rabbit ist eine Stromchiffre ohne Authentifizierungs-Tag, und die Seite kann einen veränderten Geheimtext nicht von einem guten unterscheiden: Ein geändertes Base64-Zeichen änderte den entschlüsselten Text oder ließ die UTF-8-Dekodierung scheitern und die Fehlerzeile erscheinen (beides beim Ändern einzelner Zeichen beobachtet).

Ein falsches Passwort scheitert meist an der UTF-8-Dekodierung und zeigt die Fehlerzeile, aber lesbare Ausgabe beweist keine Echtheit – vergleichen Sie eine Prüfsumme, wenn es darauf ankommt.

Kompatibilität und Grenzen

Geheimtexte von hier lassen sich mit CryptoJS 3.x Rabbit und demselben Passwort zurücklesen. OpenSSL enthält keine Rabbit-Chiffre, openssl enc kann sie also nicht entschlüsseln.

Eingaben werden eingefügt, nicht hochgeladen: Es gibt keine Dateiauswahl und keinen URL-Abruf. Im Test verschlüsselte Chrome 200 KB in etwa 0,1 s, die Seite stellte währenddessen keine Netzwerkanfrage und das Ergebnis bleibt bis zum nächsten Lauf stehen.

Zuletzt verwendet: