Alle Artikel

Base32: der Unterschied zu Base64 und wann es praktischer ist

Base32 löst ein sehr konkretes Problem: Muss ein Code vorgelesen, am Telefon diktiert oder von Hand abgetippt werden, verursacht ein Alphabet mit 32 Zeichen deutlich weniger Fehler als die 64 Zeichen von Base64.

Der Klassiker: 2FA-Einrichtung ohne QR-Code

Kann eine Authenticator-App wie Google Authenticator den QR-Code nicht scannen, zeigt sie stattdessen einen "Einrichtungsschlüssel" zum manuellen Eintippen — dieser Schlüssel ist Base32, nicht Base64. Der TOTP-Standard schreibt das gezielt vor, weil das Format so gestaltet ist, dass es sich fehlerfrei abschreiben lässt, auch wenn jemand es am Telefon buchstabiert.

Ein Alphabet, das dem deutschen Buchstabieralphabet ähnelt

Base32 verzichtet komplett auf 0, 1, 8, 9 sowie die Buchstaben O, I, L – genau die Zeichen, die beim Vorlesen oder auf einem unscharfen Display am häufigsten verwechselt werden. Das deutsche Buchstabieralphabet ("A wie Anton, O wie Otto") löst dasselbe Problem für die gesprochene Sprache; Base32 erreicht dieselbe Fehlerresistenz direkt im Zeichensatz, ganz ohne Zusatzwörter.

Wo es in der Praxis auftaucht

  • .onion-Adressen im Tor-Netzwerk – die 56-stellige Subdomain ist ein Base32-kodierter Ed25519-Public-Key.
  • DNS-Labels und Subdomains, die laut Protokoll nicht zwischen Groß- und Kleinschreibung unterscheiden.
  • Gutschein- oder Referenzcodes auf einer gedruckten Rechnung, die ein Kunde von Hand auf einer Website eingibt.

Der Preis der Lesbarkeit: längere Zeichenketten

Weniger Symbole im Alphabet bedeuten mehr Zeichen pro Byte – das Ergebnis ist etwa 60 % länger als bei Base64. Bei einem 20 Byte langen Geheimschlüssel fällt das kaum ins Gewicht; bei einer mehrere Megabyte großen Datei ist Base32 gegenüber Base64 schlicht unpraktisch.

Base32 und Base32hex sind nicht austauschbar

RFC 4648 definiert außerdem Base32hex, das statt A–Z2–7 das Alphabet 0–9A–V verwendet und dabei die Sortierreihenfolge der Zeichenketten identisch zur Reihenfolge der ursprünglichen Bytes hält – eine Eigenschaft, auf die sich manche Datenbanken verlassen. Ein mit einer Variante kodierter String lässt sich mit der anderen nicht korrekt dekodieren, weshalb es sich lohnt, vorher zu prüfen, welche Variante ein System tatsächlich erwartet.

Tool ausprobieren