Slik bruker du verktøyet
- Velg Kode for å gjøre tekst om til Base32, eller Dekode for å gjøre Base32 om til tekst igjen.
- Velg Variant. RFC 4648 er standardvalget og den som brukes av TOTP-hemmeligheter og de fleste biblioteker.
- Skriv eller lim inn inndataene, eller åpne en fil. Resultatet oppdateres mens du skriver.
- Kopier resultatet eller last det ned som en fil.
Hva er Base32?
Base32 representerer binære data med 32 utskrivbare tegn. Hvert tegn bærer 5 bit, så hver blokk på 5 byte med inndata blir til 8 tegn i utdataene. Utdataene er omtrent 60 % større enn inndataene, noe som gir mer overhead enn Base64, men alfabetet unngår små bokstaver og symboler som lett forveksles.
Standardalfabetet som er definert i RFC 4648, bruker bokstavene A-Z og sifrene 2-7. Sifrene 0, 1, 8 og 9 er utelatt slik at de ikke kan forveksles med bokstavene O, I og B. Når lengden på inndataene ikke er et multiplum av 5 byte, fylles utdataene ut med = til et multiplum av 8 tegn.
Hvor Base32 brukes
- Tofaktorautentisering. TOTP- og HOTP-hemmeligheter i autentiseringsapper (verdien
secret=i enotpauth://-lenke) er Base32-strenger. - Systemer som ikke skiller mellom store og små bokstaver. Fordi alfabetet bare har én bokstavstørrelse, overlever Base32 filsystemer, DNS-navn og e-postadresser som ignorerer forskjellen.
- Koder som skrives inn for hånd. Lisensnøkler, onion-adresser og korte identifikatorer bruker Base32 slik at de er lettere å lese høyt og skrive inn.
Hvis størrelsen betyr mer enn lesbarheten, er Base64 mer kompakt. Trenger du korte identifikatorer uten tegn som kan forveksles, kan du sammenligne Crockford Base32 og Base58.
Base32-varianter
| Variant | Alfabet | Typisk bruk |
|---|---|---|
| RFC 4648 | A-Z 2-7 | TOTP-hemmeligheter, generell bruk |
| Base32hex | 0-9 A-V | Sorteringsrekkefølgen samsvarer med de rå bytene, DNSSEC NSEC3 |
| Crockford | 0-9 A-Z uten I, L, O, U | Lesbare ID-er, ULID |
| z-base-32 | små bokstaver, omstokket | Nøkler beregnet på mennesker, OpenPGP WKD, ZRTP |
Base32 i kode
# Python
import base64
base64.b32encode(b'hello') # koding
base64.b32decode('NBSWY3DP') # dekoding
// Node.js har ingen innebygd Base32; bruk en pakke som "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)
Spesifikasjon
| Alfabet | A-Z 2-7 |
|---|---|
| Utdatastørrelse | 8 tegn per 5 byte (160 %) |
| Utfylling | Med = til et multiplum av 8 tegn |
| Standard | RFC 4648, avsnitt 6 |
| Skiller store og små bokstaver | Nei |
Eksempler
| Inndata (UTF-8) | Utdata |
|---|---|
Hello, World! | JBSWY3DPFQQFO33SNRSCC=== |
Base64.is | IJQXGZJWGQXGS4Y= |
你好 | 4S62BZNFXU====== |
Ofte stilte spørsmål
Skiller Base32 mellom store og små bokstaver?
RFC 4648-alfabetet er definert med store bokstaver, men denne dekoderen godtar også inndata med små bokstaver. Bruk valget Små bokstaver hvis du trenger utdata med små bokstaver.
Hvorfor slutter Base32-strengen min med =-tegn?
Likhetstegnene er utfylling som fyller opp den siste blokken til 8 tegn. Mange systemer, deriblant de fleste TOTP-apper, godtar Base32 uten utfylling. Slå av Utfylling for å fjerne den.
Hvor mye større er Base32 enn de opprinnelige dataene?
Hver blokk på 5 byte blir 8 tegn, så Base32-utdata er omtrent 1,6 ganger så store som inndataene. Base64 er omtrent 1,33 ganger.
Kan jeg dekode en TOTP-hemmelighet med dette verktøyet?
Ja. Lim inn hemmeligheten i Dekode-fanen og velg Hex som utdata for å se de rå nøkkelbytene. Mellomrom i hemmeligheten ignoreres.