Base32-Encoder und -Decoder

Wandeln Sie Text, Hex-Bytes oder Dateien in Base32 um und zurück. Wählen Sie das Alphabet nach RFC 4648, Base32hex, Crockford oder z-base-32 und steuern Sie Auffüllung sowie Groß- und Kleinschreibung.

Läuft vollständig in Ihrem Browser. Es wird nichts hochgeladen.

Anleitung

  1. Wählen Sie „Kodieren“, um Text in Base32 umzuwandeln, oder „Dekodieren“, um Base32 wieder in Text umzuwandeln.
  2. Wählen Sie die „Variante“. RFC 4648 ist voreingestellt; diese Variante wird für TOTP-Geheimnisse und von den meisten Bibliotheken verwendet.
  3. Geben Sie die Eingabe ein, fügen Sie sie ein oder klicken Sie auf „Datei öffnen“. Das Ergebnis wird während der Eingabe aktualisiert.
  4. Kopieren Sie das Ergebnis oder laden Sie es als Datei herunter.

Was ist Base32?

Base32 stellt Binärdaten mit 32 druckbaren Zeichen dar. Jedes Zeichen trägt 5 Bit, sodass aus je 5 Eingabebytes 8 Ausgabezeichen werden. Die Ausgabe ist etwa 60 % größer als die Eingabe und damit weniger kompakt als Base64, doch das Alphabet verzichtet auf Kleinbuchstaben und leicht verwechselbare Symbole.

Das in RFC 4648 definierte Standardalphabet verwendet die Buchstaben A-Z und die Ziffern 2-7. Die Ziffern 0, 1, 8 und 9 fehlen, damit sie nicht mit den Buchstaben O, I und B verwechselt werden. Ist die Eingabelänge kein Vielfaches von 5 Bytes, wird die Ausgabe mit = auf ein Vielfaches von 8 Zeichen aufgefüllt.

Wo Base32 verwendet wird

  • Zwei-Faktor-Authentifizierung. TOTP- und HOTP-Geheimnisse in Authenticator-Apps (der Wert secret= in einem otpauth://-Link) sind Base32-Strings.
  • Systeme ohne Unterscheidung der Schreibweise. Da das Alphabet nur eine Schreibweise kennt, übersteht Base32 Dateisysteme, DNS-Labels und E-Mail-Adressen, die Groß- und Kleinschreibung ignorieren.
  • Von Hand eingegebene Codes. Lizenzschlüssel, Onion-Adressen und kurze Kennungen verwenden Base32, damit sie sich leichter vorlesen und eintippen lassen.

Wenn die Größe wichtiger ist als die Lesbarkeit, ist Base64 kompakter. Für kurze Kennungen ohne verwechselbare Zeichen vergleichen Sie Crockford Base32 und Base58.

Base32-Varianten

VarianteAlphabetTypische Verwendung
RFC 4648A-Z 2-7TOTP-Geheimnisse, allgemeine Verwendung
Base32hex0-9 A-VSortierreihenfolge entspricht den Rohbytes, DNSSEC NSEC3
Crockford0-9 A-Z ohne I, L, O, UGut lesbare IDs, ULID
z-base-32Kleinbuchstaben, umsortiertMenschenfreundliche Schlüssel, OpenPGP WKD, ZRTP

Base32 im Programmcode

# Python
import base64
base64.b32encode(b'hello')        # kodieren
base64.b32decode('NBSWY3DP')      # dekodieren

// Node.js hat kein eingebautes Base32; verwenden Sie ein Paket wie "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)

Spezifikation

AlphabetA-Z 2-7
Ausgabegröße8 Zeichen pro 5 Bytes (160 %)
AuffüllungMit = auf ein Vielfaches von 8 Zeichen
StandardRFC 4648, Abschnitt 6
Groß-/Kleinschreibung relevantNein

Beispiele

Eingabe (UTF-8)Ausgabe
Hello, World!JBSWY3DPFQQFO33SNRSCC===
Base64.isIJQXGZJWGQXGS4Y=
你好4S62BZNFXU======

Häufig gestellte Fragen

Unterscheidet Base32 zwischen Groß- und Kleinschreibung?

Das Alphabet nach RFC 4648 ist in Großbuchstaben definiert, dieser Decoder akzeptiert aber auch Eingaben in Kleinbuchstaben. Mit der Option „Kleinbuchstaben“ erhalten Sie eine Ausgabe in Kleinbuchstaben.

Warum endet mein Base32-String mit =-Zeichen?

Die Gleichheitszeichen sind Auffüllung, die den letzten Block auf 8 Zeichen ergänzt. Viele Systeme, darunter die meisten TOTP-Apps, akzeptieren Base32 ohne Auffüllung. Schalten Sie die „Auffüllung“ aus, um sie zu entfernen.

Wie viel größer ist Base32 als die Originaldaten?

Aus je 5 Bytes werden 8 Zeichen, die Base32-Ausgabe ist also etwa 1,6-mal so groß wie die Eingabe. Bei Base64 ist es etwa das 1,33-Fache.

Kann ich mit diesem Tool ein TOTP-Geheimnis dekodieren?

Ja. Fügen Sie das Geheimnis im Tab „Dekodieren“ ein und wählen Sie bei „Ausgabe als“ die Option „Hex“, um die rohen Schlüsselbytes zu sehen. Leerzeichen im Geheimnis werden ignoriert.