Sådan bruger du værktøjet
- Vælg Kod for at gøre tekst til Base32, eller Afkod for at gøre Base32 til tekst igen.
- Vælg varianten. RFC 4648 er standard og den, der bruges til TOTP-hemmeligheder og i de fleste biblioteker.
- Skriv eller indsæt dit input, eller åbn en fil. Resultatet opdateres, mens du skriver.
- Kopiér resultatet, eller download det som en fil.
Hvad er Base32?
Base32 repræsenterer binære data med 32 printbare tegn. Hvert tegn bærer 5 bit, så hver gruppe på 5 inputbytes bliver til 8 outputtegn. Outputtet er omkring 60 % større end inputtet, hvilket er mere overhead end med Base64, men alfabetet undgår små bogstaver og symboler, der let forveksles.
Standardalfabetet, der er defineret i RFC 4648, bruger bogstaverne A-Z og cifrene 2-7. Cifrene 0, 1, 8 og 9 er udeladt, så de ikke kan forveksles med bogstaverne O, I og B. Når inputlængden ikke er et multiplum af 5 bytes, udfyldes outputtet med = til et multiplum af 8 tegn.
Hvor Base32 bruges
- Tofaktorgodkendelse. TOTP- og HOTP-hemmeligheder i godkendelsesapps (værdien
secret=i etotpauth://-link) er Base32-strenge. - Systemer uden forskel på store og små bogstaver. Fordi alfabetet kun har én slags bogstaver, overlever Base32 filsystemer, DNS-etiketter og e-mailadresser, der ignorerer forskellen på store og små bogstaver.
- Koder til manuel indtastning. Licensnøgler, onion-adresser og korte id'er bruger Base32, så de er lettere at læse højt og skrive.
Hvis størrelsen betyder mere end læsbarheden, er Base64 mere kompakt. Har du brug for korte id'er uden tegn, der kan forveksles, så sammenlign Crockford Base32 og Base58.
Base32-varianter
| Variant | Alfabet | Typisk brug |
|---|---|---|
| RFC 4648 | A-Z 2-7 | TOTP-hemmeligheder, generel brug |
| Base32hex | 0-9 A-V | Sorteringsrækkefølgen svarer til de rå bytes, DNSSEC NSEC3 |
| Crockford | 0-9 A-Z uden I, L, O, U | Læsbare id'er, ULID |
| z-base-32 | små bogstaver, omarrangeret | Nøgler beregnet til mennesker, OpenPGP WKD, ZRTP |
Base32 i kode
# Python
import base64
base64.b32encode(b'hello') # kod
base64.b32decode('NBSWY3DP') # afkod
// Node.js har ingen indbygget Base32; brug en pakke som "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)
Specifikation
| Alfabet | A-Z 2-7 |
|---|---|
| Outputstørrelse | 8 tegn pr. 5 bytes (160 %) |
| Udfyldning | Udfyldes med = til et multiplum af 8 tegn |
| Standard | RFC 4648 afsnit 6 |
| Skelner mellem store og små bogstaver | Nej |
Eksempler
| Input (UTF-8) | Output |
|---|---|
Hello, World! | JBSWY3DPFQQFO33SNRSCC=== |
Base64.is | IJQXGZJWGQXGS4Y= |
你好 | 4S62BZNFXU====== |
Ofte stillede spørgsmål
Skelner Base32 mellem store og små bogstaver?
RFC 4648-alfabetet er defineret med store bogstaver, men denne dekoder accepterer også input med små bogstaver. Brug indstillingen Små bogstaver, hvis du har brug for output med små bogstaver.
Hvorfor ender min Base32-streng med =-tegn?
Lighedstegnene er udfyldning, der fylder den sidste blok op til 8 tegn. Mange systemer, herunder de fleste TOTP-apps, accepterer Base32 uden udfyldning. Slå Udfyldning fra for at fjerne den.
Hvor meget større er Base32 end de oprindelige data?
Hver gruppe på 5 bytes bliver til 8 tegn, så Base32-output er omkring 1,6 gange så stort som inputtet. For Base64 er det omkring 1,33 gange.
Kan jeg afkode en TOTP-hemmelighed med dette værktøj?
Ja. Indsæt hemmeligheden under fanen Afkod, og vælg Hex under Output som for at se nøglens rå bytes. Mellemrum i hemmeligheden ignoreres.