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.
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.
| Bity | Wartość | Znak |
|---|---|---|
| 01001 | 9 | J |
| 00001 | 1 | B |
| 10010 | 18 | S |
| 10110 | 22 | W |
| 11000 | 24 | Y |
| 11011 | 27 | 3 |
| 00011 | 3 | D |
| 01111 | 15 | P |
| 00101 | 5 | F |
| 10000 | 16 | Q |
| 10000 | 16 | Q |
| 00101 | 5 | F |
| 01110 | 14 | O |
| 11011 | 27 | 3 |
| 11011 | 27 | 3 |
| 10010 | 18 | S |
Pokazano pierwsze 16 wierszy.
Jak korzystać z konwertera kodowań Base
- 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. 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. 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. 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 jakoz.
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.
| Kodowanie | Znaki | Długość względem bajtów | Hello, World staje się |
|---|---|---|---|
| Base32 (RFC 4648) | 32 | 8 ÷ 5 długości | JBSWY3DPFQQFO33SNRSA==== |
| Base32 w rozszerzonym heksie | 32 | 8 ÷ 5 długości | 91IMOR3F5GG5ERRIDHI0==== |
| Base58 (Bitcoin) | 58 | około 1,37 raza | 2NEpo7TZsLBYdvo5V |
| Ascii85 (Adobe) | 85 | 5 ÷ 4 długości | <~87cURD_*#4DfTZ)~> |
| Z85 (ZeroMQ) | 85 | 5 ÷ 4 długości | nm=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.