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.