Zo gebruik je het
- Kies Coderen om tekst om te zetten naar Base32, of Decoderen om Base32 terug te zetten naar tekst.
- Kies de Variant. RFC 4648 is de standaard en wordt gebruikt voor TOTP-geheimen en door de meeste bibliotheken.
- Typ of plak je invoer, of open een bestand. Het resultaat wordt bijgewerkt terwijl je typt.
- Kopieer het resultaat of download het als bestand.
Wat is Base32?
Base32 geeft binaire gegevens weer met 32 afdrukbare tekens. Elk teken draagt 5 bits, dus elke 5 invoerbytes worden 8 uitvoertekens. De uitvoer is ongeveer 60% groter dan de invoer, meer overhead dan bij Base64, maar het alfabet vermijdt kleine letters en symbolen die makkelijk met elkaar worden verward.
Het standaardalfabet uit RFC 4648 gebruikt de letters A-Z en de cijfers 2-7. De cijfers 0, 1, 8 en 9 zijn weggelaten, zodat ze niet kunnen worden verward met de letters O, I en B. Als de invoerlengte geen veelvoud van 5 bytes is, wordt de uitvoer met = aangevuld tot een veelvoud van 8 tekens.
Waar Base32 wordt gebruikt
- Tweestapsverificatie. TOTP- en HOTP-geheimen in authenticator-apps (de waarde
secret=in eenotpauth://-link) zijn Base32-strings. - Hoofdletterongevoelige systemen. Omdat het alfabet maar één soort letters kent, blijft Base32 intact in bestandssystemen, DNS-labels en e-mailadressen die geen onderscheid maken tussen hoofdletters en kleine letters.
- Codes die mensen intypen. Licentiesleutels, onion-adressen en korte ID's gebruiken Base32, zodat ze makkelijker hardop voor te lezen en in te typen zijn.
Is grootte belangrijker dan leesbaarheid, dan is Base64 compacter. Heb je korte ID's zonder verwarrende tekens nodig, vergelijk dan Crockford Base32 en Base58.
Base32-varianten
| Variant | Alfabet | Typisch gebruik |
|---|---|---|
| RFC 4648 | A-Z 2-7 | TOTP-geheimen, algemeen gebruik |
| Base32hex | 0-9 A-V | Sorteervolgorde gelijk aan die van de ruwe bytes, DNSSEC NSEC3 |
| Crockford | 0-9 A-Z zonder I, L, O, U | Leesbare ID's, ULID |
| z-base-32 | kleine letters, andere volgorde | Sleutels die mensen lezen, OpenPGP WKD, ZRTP |
Base32 in code
# Python
import base64
base64.b32encode(b'hello') # coderen
base64.b32decode('NBSWY3DP') # decoderen
// Node.js heeft geen ingebouwde Base32; gebruik een pakket zoals "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)
Specificatie
| Alfabet | A-Z 2-7 |
|---|---|
| Uitvoergrootte | 8 tekens per 5 bytes (160%) |
| Opvulling | = tot een veelvoud van 8 tekens |
| Standaard | RFC 4648, sectie 6 |
| Hoofdlettergevoelig | Nee |
Voorbeelden
| Invoer (UTF-8) | Uitvoer |
|---|---|
Hello, World! | JBSWY3DPFQQFO33SNRSCC=== |
Base64.is | IJQXGZJWGQXGS4Y= |
你好 | 4S62BZNFXU====== |
Veelgestelde vragen
Is Base32 hoofdlettergevoelig?
Het alfabet van RFC 4648 is gedefinieerd in hoofdletters, maar deze decoder accepteert ook invoer in kleine letters. Gebruik de optie Kleine letters als je uitvoer in kleine letters nodig hebt.
Waarom eindigt mijn Base32-string op =-tekens?
De =-tekens zijn opvulling die het laatste blok aanvult tot 8 tekens. Veel systemen, waaronder de meeste TOTP-apps, accepteren Base32 zonder opvulling. Zet Opvulling uit om ze weg te laten.
Hoeveel groter is Base32 dan de oorspronkelijke gegevens?
Elke 5 bytes worden 8 tekens, dus Base32-uitvoer is ongeveer 1,6 keer zo groot als de invoer. Bij Base64 is dat ongeveer 1,33 keer.
Kan ik met deze tool een TOTP-geheim decoderen?
Ja. Plak het geheim in het tabblad Decoderen en zet Uitvoer als op Hex om de ruwe sleutelbytes te zien. Spaties in het geheim worden genegeerd.