Datei hochladen
  1. base64hub
  2. Weitere Basen
  3. Base32

Base32-Encoder und -Decoder (RFC 4648)

Tippen Sie Text ein und erhalten Sie schon während der Eingabe Base32 nach RFC 4648, mit oder ohne =-Padding. Stellen Sie die Ausgabe auf base32hex, Crockford oder z-base-32 um, oder kehren Sie die Richtung zum Dekodieren um.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload 4 Varianten RFC 4648, Hex, Crockford, z-base-32 Aktualisiert 27.10.2026
Eingabe 0Bytes 0 BAusgabe 0

Wird in Ihrem Browser verarbeitet. Diese Seite kann Ihre Daten nirgendwohin senden – woher wir das wissen

So kodieren Sie Text in Base32

  1. Tippen oder fügen Sie Text in Eingabe · Text ein. Ist Live aktiviert, wird die Ausgabe bei jedem Tastendruck aktualisiert.
  2. Lesen Sie das Ergebnis in Ausgabe · Base32 (RFC 4648). Deaktivieren Sie Padding (=) unter der Ausgabe, um die = am Ende wegzulassen.
  3. Für eine andere Variante öffnen Sie Nach und wählen Base32hex, Crockford Base32 oder z-base-32.
  4. Um stattdessen zu dekodieren, klicken Sie im Richtungsschalter auf Base32 (RFC 4648) → Text. Der eigene Base32-Decoder startet bereits in dieser Richtung.
  5. Mit Ausgabe kopieren oder Herunterladen nehmen Sie das Ergebnis mit.

Der Text wird standardmäßig als UTF-8 in Bytes umgewandelt. Brauchen Sie das Base32 desselben Texts in einer anderen Kodierung, etwa Windows-1252 oder UTF-16LE, ändern Sie den Zeichensatz unter der Eingabe.

So funktioniert Base32

Base32 liest die Eingabe in Schritten von 5 Bit und schreibt pro 5 Bit ein Zeichen. Fünf Bytes (40 Bit) werden zu genau acht Zeichen, die Ausgabe ist also 60 % größer als die Eingabe. Eine Base64-Zeichenkette derselben Daten wäre 33 % größer; das ist der Preis, den Base32 dafür zahlt, nur Großbuchstaben und sechs Ziffern zu verwenden.

Ist die Eingabelänge kein Vielfaches von 5 Bytes, wird die letzte Gruppe mit = auf 8 Zeichen aufgefüllt. Das sind die Testvektoren aus RFC 4648, erzeugt mit diesem Tool:

EingabeBase32Ohne Padding
fMY======MY
foMZXQ====MZXQ
fooMZXW6===MZXW6
foobMZXW6YQ=MZXW6YQ
foobaMZXW6YTBMZXW6YTB
foobarMZXW6YTBOI======MZXW6YTBOI

Padding trägt keine Daten. Ein Decoder kann die Byteanzahl aus der Zahl der echten Zeichen berechnen, deshalb lassen viele Formate es weg.

Base32-Varianten: RFC 4648, base32hex, Crockford, z-base-32

„Base32“ bezeichnet eine Familie. Alle vier Mitglieder packen 5 Bit pro Zeichen; sie unterscheiden sich im Alphabet und darin, ob Padding verwendet wird. Dieselben fünf Bytes, Hello, in jeder Variante:

VarianteAlphabetHelloPaddingWo man ihr begegnet
Base32 nach RFC 4648A–Z, 2–7JBSWY3DP=TOTP-/2FA-Secrets, Tor-v3-Onion-Adressen, IPFS CIDv1 (b…, Kleinbuchstaben)
Base32hex0–9, A–V91IMOR3F=DNSSEC-NSEC3-Einträge; kodierte Zeichenketten sortieren sich in derselben Reihenfolge wie die Bytes
Crockford Base320–9, A–Z ohne I L O U91JPRV3FkeinsIDs, die Menschen vorlesen und abtippen
z-base-32ybndrfg8ejkmcpqxot1uwisza345h769jb1sa5dxkeinsFür Menschen gedachte Schlüssel und Kennungen

Base32hex und Crockford sehen sich ähnlich, sind aber verschiedene Alphabete: Nach H laufen sie auseinander, daher sind 91IMOR3F und 91JPRV3F dieselben Bytes. Wer das falsche wählt, dekodiert ohne Fehlermeldung und erhält stillschweigend andere Bytes.

Der Crockford-Decoder hier ist so nachsichtig, wie Crockford es vorgesehen hat: Er liest I und L als 1, O als 0 und überspringt Bindestriche, daher ergibt 91JP-RV3F weiterhin Hello. Das optionale Prüfzeichen von Crockford fügt er weder hinzu noch prüft er es.

Base32 für TOTP- und 2FA-Secrets

Authenticator-Apps erhalten ihr Secret aus einem otpauth://-Link, meist als QR-Code angezeigt:

otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

Der Parameter secret ist Base32 nach RFC 4648 ohne Padding. JBSWY3DPEHPK3PXP hat 16 Zeichen und enthält damit 10 Bytes. RFC 4226 empfiehlt ein Secret mit 160 Bit (20 Bytes), das sind 32 Base32-Zeichen. Liegt Ihr Secret als Base64 oder Hex vor, wandeln Sie es mit Base64 in Base32 um. Tippen Sie den Base64-Text in diese Seite ein, werden seine Zeichen kodiert. Das ergibt gültiges Base32 der falschen Bytes, und jeder daraus erzeugte Code wird abgelehnt.

Ein TOTP-Secret ist ein Schlüssel: Wer es hat, kann Ihre Codes erzeugen. Diese Seite verarbeitet das Secret in Ihrem Browser-Tab, und ihre Content Security Policy verhindert, dass die Seite Netzwerkanfragen stellt, mit Ausnahme des Seitenaufrufzählers von Cloudflare.

Base32 auf der Kommandozeile und in Python

GNU coreutils bringt den Befehl base32 mit, der wie base64 funktioniert:

printf 'Hello' | base32
printf 'JBSWY3DP' | base32 -d

Die erste Zeile gibt JBSWY3DP aus, die zweite Hello. Pythons Standardbibliothek kennt alle drei Formen aus RFC 4648:

import base64

base64.b32encode(b"Hello")                          # b'JBSWY3DP'
base64.b32hexencode(b"Hello")                       # b'91IMOR3F'
base64.b32encode(b"Hi").decode().rstrip("=")        # 'JBUQ'

Weitere Rezepte zum Kodieren finden Sie auf der Python-Seite. Zum Dekodieren, einschließlich der Padding- und Kleinbuchstabenfehler, die Python wirft, siehe den Base32-Decoder.

Häufige Fragen

Warum endet die Base32-Ausgabe mit ======?

Base32 arbeitet mit Blöcken aus 5 Bytes, die zu 8 Zeichen werden. Ist der letzte Block kürzer, füllt RFC 4648 den Rest der 8 Zeichen mit = auf, daher wird Hi zu JBUQ====. Deaktivieren Sie Padding (=), wenn die Gegenseite das bloße JBUQ erwartet.

Unterscheidet Base32 zwischen Groß- und Kleinschreibung?

Das Alphabet von RFC 4648 besteht aus Großbuchstaben, die meisten Decoder akzeptieren aber auch Kleinbuchstaben, dieser hier ebenfalls. Python ist eine Ausnahme: base64.b32decode lehnt Kleinbuchstaben ab, solange Sie nicht casefold=True übergeben.

Sollte ich Base32 oder Base64 verwenden?

Base64, wenn nur Programme die Daten lesen: Es ist kürzer (33 % Overhead gegenüber 60 %). Base32, wenn Menschen den Wert lesen, abtippen oder vorlesen oder wenn er Systeme ohne Unterscheidung der Schreibweise überstehen muss, etwa DNS-Namen oder manche Dateisysteme.

Welche Zeichen verwendet Base32?

Base32 nach RFC 4648 verwendet A–Z und 2–7, dazu = als Padding. Die Ziffern 0, 1, 8 und 9 fehlen, eine Zeichenkette mit diesen Ziffern ist also base32hex, Crockford oder gar kein Base32.