Base32 encoder en decoder

Base32 stelt binaire data voor met 32 tekens, de tien cijfers 2-7 en de 26 hoofdletters, zonder 0/O of 1/I om leesfouten te vermijden. Daardoor is het ideaal voor alles wat een mens moet typen of hardop lezen: TOTP-secrets voor tweefactorauthenticatie, vouchercodes, hoofdletterongevoelige identifiers. Deze tool encodeert tekst naar Base32 en decodeert terug, volgens RFC 4648 met standaard =-padding.

Base32 encoderen of decoderen

  1. 1

    Plak de tekst die je wilt omzetten

    Invoer wordt behandeld als bytes. UTF-8 is de standaardinterpretatie voor tekstinvoer.

  2. 2

    Kies de richting

    Encode om ruwe bytes om te zetten naar een Base32-string; decode om de bytes terug te halen.

  3. 3

    Let op het paddinggedrag

    RFC 4648 vult de gecodeerde uitvoer met `=` aan tot een veelvoud van 8 tekens. De decoder accepteert zowel opgevulde als niet-opgevulde invoer.

  4. 4

    Kopieer het resultaat

    Gecodeerde uitvoer is uppercase, aangevuld met `=` tot een veelvoud van 8 tekens.

Het RFC 4648-alfabet

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7

Geen 0, geen 1, geen 8, geen 9. Elk teken encodeert 5 bits (2^5 = 32), dus 5 invoerbytes worden 8 uitvoertekens.

Uitgewerkt voorbeeld

De ASCII-string foo encoderen (bytes 0x66 0x6F 0x6F = 01100110 01101111 01101111):

  1. Verdeel in 5-bit groepen: 01100 11001 10111 10110 1111 (laatste groep opgevuld)
  2. Koppel aan alfabet: M Z X W 6
  3. Voeg === padding toe om 8 tekens te bereiken: MZXW6===

Padding- en lengteregels

Invoerbytes Uitvoerlengte Padding
1 8 ======
2 8 ====
3 8 ===
4 8 =
5 8 (geen)

Varianten naast RFC 4648

  • Base32 Hex, Alfabet 0-9A-V, gebruikt door NSEC3 in DNSSEC.
  • Crockford’s Base32, Alfabet geoptimaliseerd voor menselijk typen; vervangt O0, I/L1 bij decode. Gebruikt door ULIDs en sommige licentiesleutels.

Deze tool implementeert alleen het standaard RFC 4648; gebruik een aparte converter voor de bovenstaande varianten.

TOTP-secrets

Het otpauth:// URI-formaat dat Google Authenticator en elke moderne 2FA-app gebruiken, encodeert het gedeelde secret in Base32 zonder padding. Wanneer je een QR scant voor “My Service”, is de parameter secret= een Base32-string. Decodeer die met deze tool om de ruwe bytes te bekijken die de HMAC gebruikt.

Veelgestelde vragen

Base32 is hoofdletterongevoelig en vermijdt op elkaar lijkende tekens, wat belangrijk is voor alles wat een mens leest of typt. Base64 is dichter (minder tekens voor dezelfde bytes), maar vereist onderscheid tussen I en l en tussen 0 en O, wat misgaat in handschrift en kleine druk.

RFC 4648 schrijft padding voor bij het encoderen. Deze tool vult de gecodeerde uitvoer altijd aan met = tot een veelvoud van 8 tekens. De meeste echte consumers (TOTP-apps, ULID-bibliotheken, DNSSEC-resolvers) accepteren invoer zonder padding, en de decoder hier accepteert beide vormen, met en zonder padding.

Standaard Base32 heeft geen 0, 1, 8 of 9 en is altijd uppercase. De decoder negeert stilletjes elk teken buiten het RFC 4648-alfabet, dus invoer met kleine letters of vreemde tekens decodeert naar de verkeerde bytes. Normaliseer de invoer vóór het decoderen tot hoofdletters A-Z en cijfers 2-7.

Ja, de tekst gaat naar de server van de pagina zodat het resultaat kan worden berekend, en in de meerstappenweergave zit dezelfde tekst ook in de stappenlink. Hij wordt niet opgeslagen of gelogd.

Gerelateerde tools

Tool beschikbaar in andere talen