Base32-koder og -dekoder

Konvertér tekst, hexbytes eller filer til Base32 og tilbage. Vælg RFC 4648-alfabetet, Base32hex, Crockford eller z-base-32, og styr udfyldning og store/små bogstaver.

Kører udelukkende i din browser. Intet bliver uploadet.

Sådan bruger du værktøjet

  1. Vælg Kod for at gøre tekst til Base32, eller Afkod for at gøre Base32 til tekst igen.
  2. Vælg varianten. RFC 4648 er standard og den, der bruges til TOTP-hemmeligheder og i de fleste biblioteker.
  3. Skriv eller indsæt dit input, eller åbn en fil. Resultatet opdateres, mens du skriver.
  4. 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 et otpauth://-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

VariantAlfabetTypisk brug
RFC 4648A-Z 2-7TOTP-hemmeligheder, generel brug
Base32hex0-9 A-VSorteringsrækkefølgen svarer til de rå bytes, DNSSEC NSEC3
Crockford0-9 A-Z uden I, L, O, ULæsbare id'er, ULID
z-base-32små bogstaver, omarrangeretNø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

AlfabetA-Z 2-7
Outputstørrelse8 tegn pr. 5 bytes (160 %)
UdfyldningUdfyldes med = til et multiplum af 8 tegn
StandardRFC 4648 afsnit 6
Skelner mellem store og små bogstaverNej

Eksempler

Input (UTF-8)Output
Hello, World!JBSWY3DPFQQFO33SNRSCC===
Base64.isIJQXGZJWGQXGS4Y=
你好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.