Koder i dekoder z-base-32

Zamień tekst, bajty szesnastkowe lub pliki na z-base-32 i z powrotem. Alfabet złożony z małych liter pomija łatwe do pomylenia znaki, a wynik nie wymaga dopełnienia.

Działa w całości w przeglądarce. Nic nie jest wysyłane.

Jak używać

  1. Wybierz „Koduj”, aby zamienić tekst na z-base-32, lub „Dekoduj”, aby zamienić z-base-32 z powrotem na tekst.
  2. Pozostaw wybrany wariant z-base-32 i upewnij się, że „Dopełnienie” jest wyłączone, ponieważ ten format go nie używa.
  3. Wpisz lub wklej dane wejściowe albo otwórz plik. Wynik aktualizuje się na bieżąco podczas pisania.
  4. Skopiuj wynik lub pobierz go jako plik.

Czym jest z-base-32?

z-base-32 to kodowanie Base32 zaprojektowane przez Zooko Wilcox-O'Hearna tak, aby ludziom łatwiej było je czytać, zapisywać i wymawiać. Mechanizm jest taki sam jak w Base32 według RFC 4648: każdy znak niesie 5 bitów, a 5 bajtów daje 8 znaków. Wyróżnia je alfabet:

ybndrfg8ejkmcpqxot1uwisza345h769

Składa się wyłącznie z małych liter i cyfr oraz pomija znaki 0, 2, l i v, które łatwo pomylić z o, z, 1 i u. Kolejność znaków również została zmieniona, więc wynik z-base-32 w niczym nie przypomina standardowego Base32 tych samych bajtów i dekoder RFC 4648 nie jest w stanie go odczytać.

Dopełnienia nie ma: długość danych wynika z długości ciągu. Specyfikacja pozwala też kodować ciągi bitów, które nie składają się z pełnych bajtów, jeśli obie strony uzgodnią ich długość; to narzędzie zawsze pracuje na pełnych bajtach.

Gdzie używa się z-base-32

  • OpenPGP Web Key Directory (WKD). Aby opublikować klucz pod ustalonym adresem URL (well-known), lokalną część adresu e-mail zamienia się na małe litery i haszuje algorytmem SHA-1, a 20-bajtowy skrót koduje się w z-base-32 jako 32-znakową nazwę pliku.
  • ZRTP. Krótki ciąg uwierzytelniający, który dwaj rozmówcy odczytują sobie na głos, aby wykryć atak typu man-in-the-middle, może być przedstawiony jako Base32 z alfabetem z-base-32 (RFC 6189).
  • Lightning Network. Oprogramowanie węzłów, takie jak lnd i Core Lightning, zwraca podpisane wiadomości jako ciągi z-base-32.

Spośród innych formatów przyjaznych dla ludzi warto porównać Crockford Base32, który zachowuje kolejność cyfr i wybacza pomyłki przy wpisywaniu, oraz Base58, który jest krótszy, ale rozróżnia wielkość liter.

Specyfikacja

Alfabetybndrfg8ejkmcpqxot1uwisza345h769
Rozmiar wyniku8 znaków na 5 bajtów (160%)
DopełnienieBrak
Standardz-base-32 (Zooko Wilcox-O'Hearn)
Rozróżnia wielkość literNie

Przykłady

Wejście (UTF-8)Wyjście
Hello, World!jb1sa5dxfoofq551pt1nn
Base64.isejozg3jsgozg1ha
你好h164b3pfzw

Najczęściej zadawane pytania

Czy z-base-32 to to samo co Base32?

Nie. Używa takiego samego grupowania po 5 bitów jak Base32 według RFC 4648, ale innego alfabetu ze zmienioną kolejnością znaków i nie stosuje dopełnienia. Ciąg z-base-32 trzeba dekodować dekoderem z-base-32.

Czy z-base-32 rozróżnia wielkość liter?

Alfabet składa się z małych liter, a wynik zawsze jest zapisywany małymi literami. Ten dekoder akceptuje też dane wejściowe zapisane wielkimi literami i przed dekodowaniem zamienia je na małe.

Co, jeśli mój ciąg kończy się znakami =?

z-base-32 nie używa dopełnienia, ale jeśli ciąg kończy się znakami =, dekoder po prostu je ignoruje.

Jak uzyskać skrót WKD?
WKD wymaga skrótu SHA-1 lokalnej części adresu zapisanej małymi literami, a tego to narzędzie nie oblicza. Oblicz skrót w innym miejscu, wklej go tutaj jako dane wejściowe w hex i zakoduj. GnuPG potrafi też bezpośrednio wypisać skrót WKD za pomocą opcji --with-wkd-hash.