Kodare och avkodare för Base32

Konvertera text, hexbyte eller filer till Base32 och tillbaka. Välj alfabetet i RFC 4648, Base32hex, Crockford eller z-base-32, och styr utfyllnad och skiftläge.

Körs helt i din webbläsare. Inget laddas upp.

Så använder du verktyget

  1. Välj Koda för att göra om text till Base32, eller Avkoda för att göra om Base32 till text.
  2. Välj variant. RFC 4648 är förvald och är den som används för TOTP-nycklar och i de flesta bibliotek.
  3. Skriv eller klistra in indatan, eller öppna en fil. Resultatet uppdateras medan du skriver.
  4. Kopiera resultatet eller ladda ned det som en fil.

Vad är Base32?

Base32 representerar binärdata med 32 utskrivbara tecken. Varje tecken bär 5 bitar, så varje grupp om 5 byte indata blir 8 tecken utdata. Utdatan blir ungefär 60 % större än indatan, alltså mer än med Base64, men alfabetet undviker gemener och symboler som lätt förväxlas.

Standardalfabetet i RFC 4648 använder bokstäverna A-Z och siffrorna 2-7. Siffrorna 0, 1, 8 och 9 är utelämnade så att de inte kan förväxlas med bokstäverna O, I och B. När indatans längd inte är en multipel av 5 byte fylls utdatan ut med = till en multipel av 8 tecken.

Var Base32 används

  • Tvåfaktorsautentisering. Hemliga nycklar för TOTP och HOTP i autentiseringsappar (värdet secret= i en otpauth://-länk) är Base32-strängar.
  • System som inte skiljer på skiftläge. Eftersom alfabetet bara har ett skiftläge klarar sig Base32 i filsystem, DNS-etiketter och e-postadresser som ignorerar skillnaden mellan versaler och gemener.
  • Koder som skrivs in för hand. Licensnycklar, onion-adresser och korta identifierare använder Base32 så att de blir lättare att läsa upp och skriva in.

Om storleken spelar större roll än läsbarheten är Base64 mer kompakt. Behöver du korta identifierare utan förväxlingsbara tecken kan du jämföra Crockford Base32 och Base58.

Varianter av Base32

VariantAlfabetTypisk användning
RFC 4648A-Z 2-7TOTP-nycklar, allmänt bruk
Base32hex0-9 A-VSorteringsordningen följer de råa bytena, DNSSEC NSEC3
Crockford0-9 A-Z utom I, L, O, ULäsbara ID:n, ULID
z-base-32gemener, omkastad ordningNycklar avsedda för människor, OpenPGP WKD, ZRTP

Base32 i programkod

# Python
import base64
base64.b32encode(b'hello')        # koda
base64.b32decode('NBSWY3DP')      # avkoda

// Node.js saknar inbyggt stöd för Base32; använd ett paket som "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)

Specifikation

AlfabetA-Z 2-7
Utdatastorlek8 tecken per 5 byte (160 %)
Utfyllnad= fyller ut till en multipel av 8 tecken
StandardRFC 4648 avsnitt 6
SkiftlägeskänsligNej

Exempel

Indata (UTF-8)Utdata
Hello, World!JBSWY3DPFQQFO33SNRSCC===
Base64.isIJQXGZJWGQXGS4Y=
你好4S62BZNFXU======

Vanliga frågor

Är Base32 skiftlägeskänslig?

Alfabetet i RFC 4648 är definierat med versaler, men den här avkodaren accepterar även gemener. Använd alternativet Gemener om du behöver utdata med gemener.

Varför slutar min Base32-sträng med likhetstecken?

Likhetstecknen är utfyllnad som fyller ut det sista blocket till 8 tecken. Många system, däribland de flesta TOTP-appar, accepterar Base32 utan utfyllnad. Stäng av utfyllnaden för att ta bort dem.

Hur mycket större är Base32 än originaldatan?

Varje grupp om 5 byte blir 8 tecken, så Base32-utdata är ungefär 1,6 gånger så stor som indatan. För Base64 är faktorn ungefär 1,33.

Kan jag avkoda en TOTP-nyckel med det här verktyget?

Ja. Klistra in nyckeln på fliken Avkoda och välj Hex under Utdata som för att se nyckelns råa byte. Mellanslag i nyckeln ignoreras.