Przejdź do treści

Konwerter Base32, Base58 i Ascii85

Koduj tekst lub surowe bajty jako Base32, Base58, Ascii85 lub Z85 albo dekoduj dowolny z nich, z alfabetem i zasadami dopełnienia każdego kodowania. Tabela obliczeń pokazuje, jak pierwsze bajty zamieniają się w znaki. Kodowanie Base64 znajdziesz w narzędziu Koder i dekoder tekstu. Działa w przeglądarce; nic nie jest przesyłane.

Tryb

Litery A–Z i cyfry 2–7, pięć bitów na znak, dopełnione `=` do wielokrotności ośmiu znaków. Przy dekodowaniu wielkość liter nie ma znaczenia.

Jak to obliczono

Bajty zapisuje się jako bity i dzieli na grupy po pięć. Każda grupa to liczba od 0 do 31 i wybiera jeden znak.

BityWartośćZnak
010019J
000011B
1001018S
1011022W
1100024Y
11011273
000113D
0111115P
001015F
1000016Q
1000016Q
001015F
0111014O
11011273
11011273
1001018S

Pokazano pierwsze 16 wierszy.

Jak korzystać z konwertera kodowań Base

  1. 1. Wybierz kodowanie. Base32, Base32 z rozszerzonym alfabetem heksadecymalnym, Base58 z alfabetem Bitcoin, Ascii85 według Adobe lub Z85. Notatka pod menu opisuje wybrane kodowanie.
  2. 2. Określ, czym są dane. Tekst jest odczytywany jako bajty UTF-8. Bajty w heksie pozwalają kodować dowolne dane binarne, na przykład klucz, wpisany jako pary 86 4f d2 6f.
  3. 3. Koduj lub dekoduj. Kodowanie daje tekst złożony z alfabetu danego kodowania. Dekodowanie zamienia go z powrotem na bajty, pokazane jako tekst lub heks. Spacje i podziały wierszy na wejściu są ignorowane.
  4. 4. Sprawdź opcje. Base32 może być zapisane z dopełnieniem = lub bez niego. Ascii85 może być otoczone <~ i ~> oraz może zapisywać cztery zerowe bajty jako z.

Do czego służą te kodowania

Żadne z nich nie jest szyfrowaniem. Każde zamienia bajty, które mogą nie być drukowalne, na tekst, który da się wkleić do e-maila, adresu URL, kodu QR lub pliku konfiguracyjnego, a każde cofnie dowolna osoba znająca nazwę kodowania. Różnią się alfabetem i tym, o ile dłuższy jest tekst od danych.

KodowanieZnakiDługość względem bajtówHello, World staje się
Base32 (RFC 4648)328 ÷ 5 długościJBSWY3DPFQQFO33SNRSA====
Base32 w rozszerzonym heksie328 ÷ 5 długości91IMOR3F5GG5ERRIDHI0====
Base58 (Bitcoin)58około 1,37 raza2NEpo7TZsLBYdvo5V
Ascii85 (Adobe)855 ÷ 4 długości<~87cURD_*#4DfTZ)~>
Z85 (ZeroMQ)855 ÷ 4 długościnm=QNz.92jz/PV8

Base32

Base32 dzieli bajty na 5-bitowe grupy i zapisuje każdą jako jeden z 32 znaków, A–Z i 2–7. Używa tylko cyfr od 2 do 7, pomijając 0, 1 i 8, które przypominają O, I i B, i ignoruje wielkość liter, więc można je przeczytać na głos lub przepisać. Znak dopełnienia = zaokrągla długość do wielokrotności ośmiu. RFC 4648 podaje wektory testowe, na przykład foobar → MZXW6YTBOI======. Sekrety aplikacji uwierzytelniających i adresy onion Tora są zapisane w Base32.

Base58

Base58 traktuje całe wejście jako jedną dużą liczbę i zapisuje ją w systemie o podstawie 58, pomijając 0, O, I i l oraz symbole + i /, dzięki czemu wynik można skopiować dwukrotnym kliknięciem i trudno go pomylić. Każdy wiodący zerowy bajt zapisuje się jako pierwszy znak, 1. Alfabet Bitcoin to jeden z kilku alfabetów Base58; te używane przez Ripple i Flickr porządkują znaki inaczej, więc sprawdź, którego używają Twoje dane. Adresy Bitcoin dodają na wierzchu sumę kontrolną i bajt wersji — ten schemat nazywa się Base58Check i tego narzędzie nie oblicza.

Ascii85 i Z85

Oba odczytują cztery bajty jako 32-bitową liczbę i zapisują ją jako pięć cyfr w systemie o podstawie 85, dlatego są tylko o 25 procent dłuższe od danych. Ascii85 Adobe, używany w PostScript i PDF, korzysta ze znaków od ! do u, skraca cztery zerowe bajty do z i zwykle otacza dane znacznikami <~ i ~>. Końcowa grupa od jednego do trzech bajtów daje o jeden znak więcej niż bajtów. Z85, zdefiniowany w RFC 32 ZeroMQ, używa innego, 85-znakowego alfabetu dobranego tak, by w kodzie źródłowym nie pojawiały się cudzysłowy ani ukośniki wsteczne; nie ma skrótu z ani krótkiej końcowej grupy, więc wejście musi być wielokrotnością czterech bajtów. Jego przykład ze specyfikacji to osiem bajtów 86 4f d2 6f b5 59 f7 5b, które kodują się jako HelloWorld. Istnieją inne alfabety base-85, na przykład ten z RFC 1924, którego używa Git, więc dopasuj alfabet do jego źródła.

Najczęstsze pytania

Czy Base32 lub Base58 to szyfrowanie?
Nie. To kodowania: każdy może je odwrócić, bo alfabet i zasady są jawne. Sprawiają, że dane są drukowalne i łatwiejsze do skopiowania, a nie tajne.
Dlaczego Base58 pomija niektóre znaki?
By uniknąć podobieństw i symboli. Pomija 0 (zero), O (wielkie o), I (wielkie i) i l (małe L), które w wielu czcionkach można pomylić, oraz + i /, które psują zaznaczanie dwukrotnym kliknięciem. Zostaje 58 znaków.
Jak zdekodować ciąg Base32?
Wybierz Base32, przełącz na Dekoduj i wklej ciąg. Wielkość liter nie ma znaczenia, a końcowe znaki = są opcjonalne. Jeśli dostaniesz błąd wskazujący znaki, ciąg prawdopodobnie jest w Base32 w rozszerzonym heksie, Base64 lub innym kodowaniu.
Czym różni się Ascii85 od Z85?
Oba używają pięciu znaków na cztery bajty, ale ich alfabety się różnią. Ascii85 używa znaków od ! do u, ma skrót z dla zer i może mieć wokół siebie <~ i ~>. Z85 używa alfabetu bezpiecznego w kodzie źródłowym i nie ma skrótów.
Dlaczego Z85 mówi, że potrzebuję wielokrotności czterech bajtów?
Specyfikacja Z85 nie przewiduje dopełnienia. Jej dane muszą składać się z pełnych 4-bajtowych grup, a tekst musi mieć wielokrotność pięciu znaków. Dodaj bajty samodzielnie albo użyj Ascii85, które obsługuje krótką końcową grupę.
Jak zakodować ciąg Base64?
Ta strona nie obsługuje Base64. Koder i dekoder tekstu zamienia tekst na Base64, adresy URL i encje HTML i z powrotem, a strona Szyfr XOR może pokazać bajty w heksie jako Base64.

Powiązane narzędzia

Więcej z kategorii Kody i szyfry