In diesem Artikel
Was ist Base32?
Base32 ist ein in RFC 4648 definiertes Binär-zu-Text-Codierungsverfahren, das Binärdaten mit einem Satz von 32 Zeichen (A-Z und 2-7) darstellt. Anders als Base64 verwendet Base32 nur Großbuchstaben und Ziffern, was es unabhängig von der Groß-/Kleinschreibung und für die manuelle Eingabe benutzerfreundlich macht.
Base32 erzeugt eine längere Ausgabe als Base64 (rund 60 % Overhead gegenüber 33 %), doch der Kompromiss besteht in besserer Lesbarkeit und Kompatibilität mit Systemen, die die Groß-/Kleinschreibung ignorieren oder Sonderzeichen wie + und / nicht zulassen.
So funktioniert die Base32-Codierung
Base32 wandelt jede Gruppe von 5 Byte (40 Bit) in 8 Base32-Zeichen (je 5 Bit) um und füllt mit =-Zeichen auf, wenn die Eingabelänge kein Vielfaches von 5 ist.
- 5-Bit-Gruppierung — die Eingabe-Bytes werden in 5-Bit-Blöcke aufgeteilt, von denen jeder auf eines der 32 Zeichen des Alphabets A-Z, 2-7 abgebildet wird
- Auffüllen (Padding) — =-Zeichen füllen die Ausgabe auf, damit die Länge stets ein Vielfaches von 8 Zeichen ist
- Varianten — Base32Hex verwendet 0-9, A-V statt A-Z, 2-7, um die Sortierreihenfolge der codierten Daten zu erhalten
Kostenlos testen – keine Registrierung erforderlich
Base32 codieren oder decodieren →Wann Base32 sinnvoll ist
Base32 wird gegenüber Base64 in Szenarien bevorzugt, in denen Groß-/Kleinschreibung, Lesbarkeit oder Zeichenbeschränkungen eine Rolle spielen.
- TOTP-Secrets — Authenticator-Apps wie Google Authenticator verwenden Base32-codierte Secrets, weil Nutzer sie unter Umständen manuell eingeben müssen
- Crockford-Codierung — eine Base32-Variante, die mehrdeutige Zeichen (I, L, O, U) entfernt, um übersichtlichere, für Menschen lesbare Bezeichner zu erhalten
- DNS und Dateisysteme — Base32 funktioniert in Umgebungen, die die Groß-/Kleinschreibung ignorieren, in denen das gemischtschriftliche Alphabet von Base64 zu Kollisionen führen würde
Häufig gestellte Fragen
Was ist der Unterschied zwischen Base32 und Base64?
Base32 verwendet 32 Zeichen (A-Z, 2-7) und erzeugt eine etwa 60 % größere Ausgabe, während Base64 64 Zeichen (A-Z, a-z, 0-9, +, /) mit rund 33 % Overhead nutzt. Base32 ist unabhängig von der Groß-/Kleinschreibung und vermeidet Sonderzeichen, wodurch es sich besser für die manuelle Eingabe und für Systeme eignet, die die Groß-/Kleinschreibung ignorieren.
Warum verwenden Authenticator-Apps Base32 statt Base64?
Authenticator-Apps verwenden Base32, weil Nutzer den geheimen Schlüssel gelegentlich manuell eingeben müssen. Das Alphabet von Base32 mit ausschließlich Großbuchstaben vermeidet Verwechslungen zwischen ähnlich aussehenden Zeichen (etwa dem kleinen L und der Ziffer 1) und funktioniert zuverlässig, wenn zwischen Systemen kopiert wird, die die Groß-/Kleinschreibung ignorieren.
Was ist Base32Hex und wann sollte ich es verwenden?
Base32Hex (auch base32hex oder Extended Hex genannt) verwendet die Zeichen 0-9 und A-V anstelle des Standardalphabets A-Z, 2-7. Es erhält bei der Codierung die lexikografische Sortierreihenfolge der ursprünglichen Binärdaten, was für die Datenbankindizierung und sortierte Datenstrukturen nützlich ist.