Base32-kodare och avkodare

Base32 representerar binär data med 32 tecken - siffrorna 2-7 och de 26 versala bokstäverna, utan 0/O eller 1/I för att undvika läsfel. Det gör det idealiskt för allt en människa måste skriva eller läsa upp: tvåfaktors TOTP-hemligheter, värdekoder och skiftlägesokänsliga identifierare. Det här verktyget kodar binärdata eller text till Base32 och avkodar tillbaka, enligt RFC 4648 med valfri padding.

Så kodar eller avkodar du Base32

  1. 1

    Klistra in text eller ladda upp en fil

    Indata behandlas som bytes. UTF-8 är standardtolkningen för textindata.

  2. 2

    Välj riktning

    Koda för att omvandla råa bytes till en Base32-sträng; avkoda för att återskapa bytes.

  3. 3

    Konfigurera padding

    RFC 4648 anger `=`-padding upp till en längd som är multipel av 8. Stäng av den för TOTP-hemligheter och kompakta tokens.

  4. 4

    Kopiera resultatet

    Kodad utdata är versal, med eller utan padding enligt din inställning.

RFC 4648-alfabetet

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7

Ingen 0, ingen 1, ingen 8, ingen 9. Varje tecken kodar 5 bitar (2^5 = 32), så 5 indatabytes blir 8 utdatatecken.

Genomarbetat exempel

Kodning av ASCII-strängen foo (bytes 0x66 0x6F 0x6F = 01100110 01101111 01101111):

  1. Dela i 5-bitarsgrupper: 01100 11001 10111 10110 1111 (sista gruppen paddas)
  2. Mappa till alfabetet: M Z X W 6
  3. Lägg till === padding för att nå 8 tecken: MZXW6===

Padding- och längdregler

Indatabytes Utdatalängd Padding
1 8 ======
2 8 ====
3 8 ===
4 8 =
5 8 (ingen)

Varianter utanför RFC 4648

  • Base32 Hex - Alfabetet 0-9A-V, används av NSEC3 i DNSSEC.
  • Crockford's Base32 - Alfabet optimerat för mänsklig inmatning; ersätter O0, I/L1 vid avkodning. Används av ULID:er och vissa licensnycklar.

Det här verktyget använder standard-RFC 4648 som standard.

TOTP-hemligheter

URI-formatet otpauth://, som används av Google Authenticator och alla moderna 2FA-appar, kodar den delade hemligheten i Base32 utan padding. När du skannar en QR-kod för “My Service” är parametern secret= en Base32-sträng. Avkoda den med detta verktyg för att inspektera de råa bytes som HMAC använder.

Vanliga frågor

Base32 är skiftlägesokänsligt och undviker tecken som liknar varandra, vilket spelar roll för allt en människa läser eller skriver. Base64 är tätare (färre tecken för samma bytes) men kräver att du skiljer I från l och 0 från O, vilket fallerar i handskrift och liten text.

RFC 4648 säger ja, men de flesta verkliga konsumenter (TOTP-appar, ULID-bibliotek, DNSSEC-resolvers) accepterar indata utan padding. Det här verktyget låter dig välja; klistra in båda formerna så bör avkodning fungera.

Standard-Base32 har inga 0, 1, 8 eller 9 och är alltid versalt. Om din indata har sådana tecken kan det vara Crockford-varianten eller base32hex, inte RFC 4648. Rensa indatan eller välj rätt variant.

Nej. Kodning och avkodning sker i webbläsaren. Varken indatan eller resultatet lämnar din dator.

Relaterade verktyg