Anleitung
- Wählen Sie „Kodieren“, um Text in Crockford Base32 umzuwandeln, oder „Dekodieren“, um es wieder in Text umzuwandeln.
- Lassen Sie bei „Variante“ Crockford ausgewählt und achten Sie darauf, dass die „Auffüllung“ ausgeschaltet ist. Aktivieren Sie „Kleinbuchstaben“ für eine Ausgabe in Kleinbuchstaben.
- Geben Sie die Eingabe ein, fügen Sie sie ein oder klicken Sie auf „Datei öffnen“. Beim Dekodieren werden Bindestriche und Leerzeichen ignoriert.
- Kopieren Sie das Ergebnis oder laden Sie es als Datei herunter.
Was ist Crockford Base32?
Douglas Crockford entwarf dieses Base32-Alphabet für Kennungen, die Menschen lesen, eintippen und laut aussprechen. Es verwendet die zehn Ziffern und 22 Großbuchstaben: 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Die Buchstaben I und L fehlen, weil sie der Ziffer 1 ähneln, O, weil es wie die 0 aussieht, und U, um die Gefahr zu verringern, versehentlich obszöne Wörter zu bilden.
Jedes Symbol trägt 5 Bit, sodass aus 5 Bytes 8 Zeichen werden, genau wie bei Base32 nach RFC 4648. Die Symbole stehen in aufsteigender ASCII-Reihenfolge, daher werden Strings ohne Auffüllung in einheitlicher Schreibweise in derselben Reihenfolge sortiert wie die Daten, die sie kodieren. Crockfords Spezifikation sieht keine Auffüllung vor, lassen Sie die Option „Auffüllung“ also ausgeschaltet.
Tolerante Dekodierung
Crockfords Spezifikation verlangt von Decodern, das zu akzeptieren, was Menschen tatsächlich eintippen, und genau das tut dieses Tool:
- Groß- und Kleinbuchstaben werden gleich behandelt.
- Der Buchstabe O wird als Ziffer 0 gelesen, die Buchstaben I und L als 1.
- Bindestriche, die zur besseren Lesbarkeit langer Codes eingefügt sein können, werden ignoriert, ebenso Leerzeichen und Zeilenumbrüche.
Der Buchstabe U ist ungültig und wird mit seiner Position gemeldet.
Bytes, Zahlen und ULID
Crockford beschreibt seine Kodierung anhand von Zahlen, während dieses Tool eine Folge von Bytes in 5-Bit-Gruppen kodiert, nach dem Verfahren von RFC 4648, aber mit Crockfords Symbolen. Ist die Anzahl der Bits kein Vielfaches von 5, setzen zahlenbasierte Implementierungen die überzähligen Nullbits an den Anfang, dieses Tool dagegen ans Ende, sodass die Ergebnisse voneinander abweichen können.
ULID ist ein typisches Beispiel: Das Format verwendet das Crockford-Alphabet, kodiert seinen 128-Bit-Wert aber als Zahl in 26 Zeichen. Die 16 Bytes einer ULID ergeben hier daher nicht denselben String, und das Dekodieren einer ULID liefert um zwei Bit verschobene Bytes. Das optionale Prüfsymbol aus Crockfords Spezifikation, ein zusätzliches Zeichen für den Wert modulo 37, wird nicht unterstützt: Dieses Tool fügt es weder hinzu noch prüft es es.
Spezifikation
| Alphabet | 0-9 A-Z ohne I L O U |
|---|---|
| Ausgabegröße | 8 Zeichen pro 5 Bytes (160 %) |
| Auffüllung | Keine |
| Standard | Crockford Base32 (2002) |
| Groß-/Kleinschreibung relevant | Nein |
Beispiele
| Eingabe (UTF-8) | Ausgabe |
|---|---|
Hello, World! | 91JPRV3F5GG5EVVJDHJ22 |
Base64.is | 89GQ6S9P6GQ6JWR |
你好 | WJYT1SD5QM |
Häufig gestellte Fragen
Unterscheidet Crockford Base32 zwischen Groß- und Kleinschreibung?
Nein. Die Ausgabe erfolgt standardmäßig in Großbuchstaben, mit der Option „Kleinbuchstaben“ wechseln Sie zu Kleinbuchstaben. Der Decoder akzeptiert beides, sogar gemischt in einem String.
Warum fehlen I, L, O und U im Alphabet?
I und L werden leicht mit 1 verwechselt und O mit 0. Deshalb sind sie ausgelassen und werden beim Dekodieren als diese Ziffern gelesen. U ist ausgeschlossen, damit zufällige Codes seltener anstößige englische Wörter bilden.
Unterstützt dieses Tool das Crockford-Prüfsymbol?
* ~ $ = U verwendet. Dieses Tool fügt es weder hinzu noch prüft es es. Entfernen Sie ein Prüfsymbol daher vor dem Dekodieren.Kann ich hier eine ULID dekodieren?
Nicht in ihre exakten 16 Bytes. Eine ULID kodiert ihre 128 Bit als eine einzige Zahl mit den überzähligen Bits am Anfang, während dieses Tool mit Bytegruppen arbeitet und sie ans Ende setzt. Verwenden Sie eine ULID-Bibliothek, um den Zeitstempel und den Zufallsanteil auszulesen.