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 text till Base32 och avkodar tillbaka, enligt RFC 4648 med standard-=-padding.

Så kodar eller avkodar du Base32

  1. 1

    Klistra in texten som ska konverteras

    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

    Observera padding-beteendet

    RFC 4648 fyller den kodade utdatan med `=` upp till en multipel av 8 tecken. Avkodaren accepterar både paddad och icke-paddad indata.

  4. 4

    Kopiera resultatet

    Kodad utdata är versal och utfylld med `=` upp till en multipel av 8 tecken.

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 implementerar bara standard-RFC 4648; använd en särskild konverterare för varianterna ovan.

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 kräver padding vid kodning. Det här verktyget fyller alltid den kodade utdatan med = upp till en multipel av 8 tecken. De flesta verkliga konsumenter (TOTP-appar, ULID-bibliotek, DNSSEC-resolvers) accepterar indata utan padding, och avkodaren här accepterar båda formerna, med och utan padding.

Standard-Base32 har inga 0, 1, 8 eller 9 och är alltid versalt. Avkodaren ignorerar tyst varje tecken utanför RFC 4648-alfabetet, så indata med gemener eller ovanliga tecken avkodas till fel bytes. Normalisera indatan till versaler A-Z och siffror 2-7 innan du avkodar.

Ja, texten skickas till sidans server så att resultatet kan beräknas, och i flerstegsvyn finns samma text också med i steglänken. Den varken lagras eller loggas.

Relaterade verktyg

Verktyget finns på andra språk