Geben Sie Text oder kompatible Geheimtexte und das passende Passwort ein. Wählen Sie die Operation, um einen RC4-Durchlauf zu prüfen.
Läuft lokal in deinem BrowserDiese Seite ver- und entschlüsselt Text mit RC4 im Browser. Das Ergebnis ist Base64-Text im Passphrasen-Container von CryptoJS, der mit U2FsdGVkX1 beginnt, und dieselbe Passphrase macht daraus wieder den Ausgangstext. RC4 ist eine alte Stromchiffre mit bekannten Schwächen: Nutzen Sie die Seite, um alte Daten zu lesen und die Ausgabe anderer Werkzeuge nachzuvollziehen, nicht um Neues zu schützen.
Text und Passphrase bleiben in der Seite: Es wird nichts hochgeladen, und ein Durchlauf gelingt auch mit abgeschaltetem Netzwerk. Gespeichert wird ebenfalls nichts, eine verlorene Passphrase lässt sich hier also nicht wiederherstellen. Ein- und Ausgabe sind reiner Text: kein Datei-Upload, kein Binärmodus und kein Download-Knopf.
Die Ausgabe ist ein Passphrasen-Container von CryptoJS: die acht Bytes Salted__ (daher der Anfang U2FsdGVkX1), acht zufällige Salt-Bytes und danach die RC4-Ausgabe, alles Base64-kodiert. Das Schlüsselmaterial entsteht aus Passphrase und Salt über EVP_BytesToKey mit MD5 und ist 32 Bytes lang. Im Test hat eine unabhängige Implementierung dieser Ableitung die Ausgabe dieser Seite entschlüsselt, und ebenso erzeugter Geheimtext ließ sich in der Seite wieder entschlüsseln.
Die Entschlüsselung liest das Salt aus dem Container, daher muss nur die Passphrase mit dem Geheimtext weitergegeben werden. Ein anderes Salt bedeutet einen anderen Schlüsselstrom — deshalb ergibt derselbe Satz bei jedem Lauf eine andere Zeichenfolge und führen all diese Zeichenfolgen zurück zum selben Text. Der Klartext wird als UTF-8 gelesen; was kein gültiges UTF-8 ist, lässt sich hier nicht darstellen.
OpenSSL leitet einen RC4-Schlüssel mit 16 Bytes ab (openssl enc -rc4 -md md5; -rc4-40 nutzt fünf), CryptoJS auf dieser Seite arbeitet mit 32 Bytes, deshalb können beide die Ausgabe des anderen nicht lesen. Im Test machte OpenSSL aus einem Geheimtext dieser Seite Datenmüll, und diese Seite beantwortete einen Container von openssl enc -rc4 mit der Meldung zur falschen Passphrase. Ein längerer Schlüssel hilft nicht: -K mit 64 Hex-Zeichen meldete „hex string is too long, ignoring excess“ und verwendete die ersten 16 Bytes.
Für Interoperabilität muss dieselbe Schlüsselableitung implementiert werden: EVP_BytesToKey(MD5) über Passphrase und Salt, die ersten 32 Bytes nehmen und damit RC4 ausführen. Wer eine unveränderte Kommandozeilen-Gegenseite braucht, nimmt die AES-Seite dieser Familie, die exakt zu openssl enc -aes-256-cbc -md md5 passt; auch openssl enc -rc4 selbst ist Altbestand und in OpenSSL 3 nur über den Legacy-Provider verfügbar.
Eine falsche Passphrase oder eine Zeichenfolge, die keiner dieser Container ist, wird unter den Schaltflächen in der Sprache der Seite gemeldet. Die Prüfung ist ein UTF-8-Test der entschlüsselten Bytes, also eine Bequemlichkeit und keine Garantie: Im Test wurden 24 Versuche mit falscher Passphrase alle gemeldet, ein Schlüsselstrom, der zufällig als Text dekodiert, kommt jedoch stillschweigend durch.
RC4 bietet keine Authentifizierung, und weder Änderungen noch Kürzungen werden zuverlässig erkannt. Das Kippen eines Bytes im Geheimtext änderte genau ein Zeichen des Klartexts und zeigte keine Warnung, und das Kürzen des Geheimtexts auf etwa 60 % der Länge lieferte den ersten Teil des Satzes, als wäre er die ganze Nachricht. Wo Manipulation zählt, ist eine authentifizierte Chiffre wie AES-GCM die richtige Wahl; diese Seite dient dem Nachvollziehen und Prüfen alter RC4-Daten.