Was RFC-4648-Base32 ist
Base32 stellt Bytes mit den Buchstaben A bis Z und den Ziffern 2 bis 7 dar. Jedes Symbol trägt fünf Bits, daher besteht das Alphabet aus genau 32 Zeichen. Die Ausgabe ist länger als Base64, vermeidet aber Satzzeichen und eignet sich oft für nicht zwischen Groß- und Kleinschreibung unterscheidende Kennungen.
Diese Seite wandelt Unicode-Text vor der Kodierung in UTF-8-Bytes um. Dadurch bleiben Akzente, CJK-Zeichen und Emoji korrekt. Beim Dekodieren müssen die zurückgewonnenen Bytes gültiges UTF-8 ergeben.
Der Padding-Schalter steuert nur abschließende Gleichheitszeichen. Gepaddete und ungepaddete Formen werden akzeptiert, solange Länge, Padding-Anzahl und ungenutzte Endbits gültig sind.
So verwendest du den Base32-Konverter
- Wähle Kodieren für normalen Text oder Dekodieren für eine Base32-Zeichenfolge.
- Lege fest, ob das Zielprotokoll Padding bis zu Acht-Zeichen-Blöcken verlangt.
- Füge den Wert ein und korrigiere gemeldete Alphabet-, Längen-, Padding- oder UTF-8-Fehler.
- Vergleiche das Ergebnis mit einem offiziellen Testvektor, wenn du eine Bibliothek oder API prüfst.
- Wechsle für einen Roundtrip die Richtung, berücksichtige dabei aber die Padding-Regeln des Zielsystems.
Base32-Beispiele und offizielle Vektoren
Die Beispiele verbinden RFC-4648-Testvektoren mit Unicode- und Padding-Fällen.
| Eingabe | Ausgabe | Konvertierungsrichtung | Hinweis |
|---|---|---|---|
f |
MY====== |
Kodieren | Padding hinzufügen: Mit Padding — RFC-Vektor: ein Byte. Ein Byte erzeugt zwei Datensymbole und sechs Padding-Zeichen. |
foobar |
MZXW6YTBOI====== |
Kodieren | Padding hinzufügen: Mit Padding — RFC-Vektor: foobar. Der vollständige Textvektor aus dem Testabschnitt der RFC 4648. |
Hello |
JBSWY3DP |
Kodieren | Padding hinzufügen: Ohne Padding — Text ohne Padding. Die Datensymbole bleiben gleich; nur abschließende = entfallen. |
jbswy3dp |
Hello |
Dekodieren | Kleinbuchstaben dekodieren. Kleinbuchstaben werden akzeptiert, obwohl die kanonische Ausgabe großgeschrieben ist. |
你好 |
4S62BZNFXU====== |
Kodieren | Padding hinzufügen: Mit Padding — Unicode als UTF-8. Die chinesischen Zeichen werden zuerst in sechs UTF-8-Bytes umgewandelt. |
∅ |
∅ |
Kodieren | Padding hinzufügen: Mit Padding — Leerer Wert. Eine leere Bytefolge hat eine leere Base32-Darstellung. |
Zulässige Eingabe und kanonische Form
Die Kodierung akzeptiert wohlgeformten Unicode-Text. Die Dekodierung erlaubt A-Z, 2-7, optionale Kleinbuchstaben und Padding nur am Ende. Leerraum wird absichtlich nicht entfernt.
Ohne Padding darf die Datenlänge modulo acht nur 0, 2, 4, 5 oder 7 betragen. Mit Padding muss die Anzahl der = exakt zum letzten Block passen.
- Kanonische Ausgabe verwendet Großbuchstaben.
- Padding darf nur am Ende stehen.
- 0, 1, 8 und 9 gehören nicht zum Alphabet.
- Nicht-null ungenutzte Bits werden abgelehnt.
- Gültige Bytes müssen nicht gültiger UTF-8-Text sein.
Wie der Base32-Algorithmus arbeitet
Der Encoder sammelt Bits aus UTF-8-Bytes und entnimmt Fünfergruppen als Alphabetindizes. Eine letzte Restgruppe wird zum Auswählen des letzten Symbols ausgerichtet.
Der Decoder sammelt Fünfergruppen, bis vollständige Acht-Bit-Bytes entstehen, und wendet anschließend eine strikte UTF-8-Dekodierung an.
Prüfungen für Alphabet, Längenreste, Padding und ungenutzte Bits sorgen für reproduzierbares Verhalten bei Protokolltests.
Wann Base32 sinnvoll ist
Base32 eignet sich, wenn Binärdaten mit einem kleinen Textalphabet transportiert werden sollen. Es verschlüsselt und authentifiziert nicht.
| Einsatz | Beschreibung |
|---|---|
| TOTP-Geheimnisse | Viele Authenticator-Apps zeigen gemeinsame Geheimnisse ungepaddet als Base32. |
| Groß-/Kleinschreibungsunabhängige IDs | Das eingeschränkte Alphabet übersteht Systeme besser, die die Schreibweise verändern. |
| DNS-nahe Protokolle | Einige verwenden Varianten; prüfe das genaue Alphabet. |
| Interoperabilitätstests | Offizielle Vektoren decken Rand- und Padding-Fehler auf. |
| Lesbare Binärwerte | 0 und 1 werden vermieden, eine Fehlerkorrektur gibt es jedoch nicht. |
Base32-Fehler und Grenzen
Häufige Fehler sind gemischte Alphabete, abgeschnittene Zeichenfolgen oder Padding aus einem anderen Format. Auch plausibel aussehende Werte können eine unmögliche Länge haben.
Base32 beschreibt Bytes. Ein Hash oder Schlüssel kann korrekt zu Bytes dekodiert werden und in dieser Textoberfläche dennoch wegen ungültigem UTF-8 scheitern.
- Ersetze 0 nicht durch O und 1 nicht durch I.
- Ein einzelnes Datensymbol ist unmöglich.
- Padding in der Mitte ist ungültig.
- Das letzte Symbol kann nichtkanonische Restbits enthalten.
- Base32 bietet keine Vertraulichkeit.
Base32 im Vergleich zu anderen Kodierungen
Base32 tauscht Länge gegen ein einfaches Alphabet. Base64 ist kompakter; Base58 ist für manuelle Übertragung mit Ganzzahl-Basisumrechnung ausgelegt.
Crockford Base32, base32hex und z-base-32 haben andere Alphabete oder Regeln. Diese Seite implementiert nur RFC 4648 Base32.
| Format | Beschreibung |
|---|---|
| Base64 | Kürzer, verwendet in der Standardform aber + und /. |
| Base58 | Entfernt optisch mehrdeutige Zeichen und erhält führende Nullbytes ohne Padding. |
| Hexadezimal | Direkt prüfbar, benötigt aber zwei Zeichen pro Byte. |