Skip to main content
CheckTown
Dev Tools

Base32 Encoding: A Complete Guide

Opublikowano 5 min czytania
W tym artykule

Czym jest Base32?

Base32 to schemat kodowania binarnego na tekst zdefiniowany w RFC 4648, który reprezentuje dane binarne za pomocą zestawu 32 znaków (A-Z i 2-7). W przeciwieństwie do Base64, Base32 używa tylko wielkich liter i cyfr, co czyni go niewrażliwym na wielkość liter i łatwym do ręcznego wprowadzania.

Base32 generuje dłuższe wyjście niż Base64 (około 60% narzutu wobec 33%), ale kompromisem jest lepsza czytelność i kompatybilność z systemami niewrażliwymi na wielkość liter lub zabraniającymi znaków specjalnych jak + i /.

Jak działa kodowanie Base32

Base32 konwertuje każdą grupę 5 bajtów (40 bitów) na 8 znaków Base32 (po 5 bitów każdy), uzupełniając znakami = gdy długość wejścia nie jest wielokrotnością 5.

  • Grupowanie 5-bitowe — bajty wejściowe dzielone są na 5-bitowe bloki, każdy mapowany na jeden z 32 znaków alfabetu A-Z, 2-7
  • Uzupełnienie — znaki = uzupełniają wyjście, aby jego długość była zawsze wielokrotnością 8
  • Warianty — Base32Hex używa 0-9, A-V zamiast A-Z, 2-7 dla zachowania kolejności sortowania

Wypróbuj za darmo — bez rejestracji

Koduj lub dekoduj Base32 →

Kiedy używać Base32

Base32 jest preferowany wobec Base64, gdy ważna jest wrażliwość na wielkość liter, czytelność lub ograniczenia znaków.

  • Sekrety TOTP — aplikacje uwierzytelniające jak Google Authenticator używają sekretów zakodowanych w Base32, bo użytkownicy mogą musieć je wpisywać ręcznie
  • Kodowanie Crockford — wariant Base32 usuwający niejednoznaczne znaki (I, L, O, U) dla czytelniejszych identyfikatorów
  • DNS i systemy plików — Base32 działa w środowiskach niewrażliwych na wielkość liter, gdzie mieszany alfabet Base64 powodowałby kolizje

Często zadawane pytania

Jaka jest różnica między Base32 a Base64?

Base32 używa 32 znaków (A-Z, 2-7) z ~60% większym wyjściem; Base64 używa 64 znaków z ~33% narzutu. Base32 jest niewrażliwy na wielkość liter i unika znaków specjalnych.

Dlaczego aplikacje uwierzytelniające używają Base32?

Bo użytkownicy mogą musieć ręcznie wpisać klucz sekretny. Alfabet tylko wielkich liter zapobiega pomyłkom między podobnymi znakami.

Czym jest Base32Hex?

Base32Hex używa znaków 0-9 i A-V zamiast A-Z, 2-7. Zachowuje leksykograficzną kolejność sortowania oryginalnych danych binarnych, co jest przydatne do indeksowania baz danych.

Powiązane narzędzia