Koder i dekoder Base85
Base85 upycha cztery bajty w pięciu znakach ASCII — gęściej niż proporcja 3-do-4 w Base64 — używając alfabetu 85-znakowego zamiast 64. Wariant Adobe Ascii85 znajduje się w każdym pliku PostScript i PDF; nowszy wariant Z85 (ZeroMQ) unika znaków, które psują się w stringach C i XML. To narzędzie koduje i dekoduje oba warianty, z opcjonalnymi delimiterami.
Jak konwertować Base85
-
1
Wybierz wariant
Ascii85 dla assetów PDF/PostScript; Z85 dla kodu źródłowego i protokołów sieciowych.
-
2
Wklej tekst albo prześlij plik
Kierunek kodowania przyjmuje surowe bajty; kierunek dekodowania przyjmuje ciąg Base85.
-
3
Koder porcjuje po 4 bajty
Każdy blok 4-bajtowy staje się 5-znakowym ciągiem Base85. Ostatni blok jest dopełniany i obcinany.
-
4
Skopiuj wynik
Ascii85 może być opcjonalnie owinięty delimiterami `<~` i `~>`; Z85 bez delimiterów.
Porównanie narzutu rozmiaru
| Kodowanie | Znaki na 4 bajty | Narzut względem binarnego |
|---|---|---|
| Hex | 8 | +100% |
| Base64 | 5.33 (zaokrąglane w górę do 8 z paddingiem) | +37% |
| Base85 | 5 | +25% |
| Surowe binarne | 4 | 0 |
Zatem 1 MB danych binarnych staje się 1.25 MB w Base85, 1.33 MB w Base64 i 2 MB w hex.
Alfabet Ascii85 vs Z85
Ascii85 (RFC 1924 / Adobe): znaki od ! do u (33-117 w ASCII), plus z jako skrót dla 4 bajtów zerowych. Używany w strumieniach PostScript i PDF, owijany jako <~...~>.
Z85 (ZeroMQ): podzbiór unikający znaków cudzysłowu i escape:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
Bezpieczny do osadzania w JSON, XML, stringach C i kodzie źródłowym bez escapowania.
Jak działa matematyka
Każde 4 bajty są czytane jako 32-bitowa liczba całkowita big-endian N. Pięć znaków wyjściowych to cyfry N w podstawie 85, od najbardziej znaczącej. 85^5 = 4 437 053 125, czyli więcej niż 2^32, więc 4 bajty zawsze mieszczą się w 5 znakach.
Kiedy Ascii85 ma znaczenie
Otwórz dowolny PDF w edytorze tekstu i wyszukaj ASCII85Decode — Adobe używa go jako filtra dla osadzonych obrazów i fontów, które muszą przetrwać transport 7-bitowy (stare systemy w stylu faksu). Z85 jest szeroko używany w kluczach uwierzytelniania ZeroMQ CURVE.
Przypadki szczególne
- Całkowicie zerowy blok 4-bajtowy — Ascii85 koduje go jako pojedynczy znak
zzamiast!!!!!. - Blok 4-bajtowy z samych spacji — niektóre warianty używają
ydla czterech spacji, inne nie. - Ostatni blok częściowy — dopełniany bajtami zerowymi, a odpowiadająca liczba znaków wyjściowych jest obcinana na końcu.
Najczęściej zadawane pytania
Mniejsze wyjście, tak. Uniwersalna zgodność, nie. Base85 zawiera znaki takie jak <, >, &, " (w Ascii85), które trzeba escapować w XML, JSON i URL-ach. Z85 tego unika, ale większość narzędzi natywnie mówi Base64.
Ascii85, jeśli pracujesz z plikami PostScript albo PDF. Z85 do kodu źródłowego, plików konfiguracyjnych i protokołów sieciowych. Kodowanie IPv6 z RFC 1924 to inne przypisanie tych samych 85 znaków i jest rzadko używane w praktyce.
Nie. Używają różnych alfabetów. Dekodowanie Ascii85 tabelą Z85 wyprodukuje śmieci. Wybierz jeden wariant przed kodowaniem i trzymaj się go.
Dla Adobe Ascii85 w strumieniach PDF albo PostScript tak — oznaczają zakodowany region. Do samodzielnego użycia i całego wyjścia Z85 delimitery nie są potrzebne.
Powiązane narzędzia
Szyfrowanie i odszyfrowywanie AES
Szyfruj i odszyfrowuj mało wrażliwy tekst z użyciem szyfrów AES OpenSSL. Hasło jest haszowane SHA-256, a wynik Base64 zawiera IV oraz szyfrogram.
Koder szyfru A1Z26
Koduj tekst szyfrem A1Z26 (A=1, B=2, ... Z=26) albo dekoduj sekwencję liczb z powrotem na litery, z własnym separatorem.
Koder szyfru Atbash
Koduj lub dekoduj tekst szyfrem Atbash, hebrajskim podstawieniem mapującym A-Z na Z-A. Ta sama operacja szyfruje i odszyfrowuje.
Generator bcrypt
Wygeneruj hash bcrypt z hasła plaintext. Regulowany współczynnik kosztu od 4 do 14, zgodny z Laravel, Django, Node i PHP.
Generator hashy bcrypt
Generuj hashe bcrypt albo weryfikuj hasło plaintext względem istniejącego hasha bcrypt. Generowanie i weryfikacja obok siebie w jednym narzędziu.
Koder i dekoder Base32
Koduj i dekoduj ciągi Base32 alfabetem RFC 4648. Przydatne dla sekretów TOTP, tokenów niewrażliwych na wielkość liter i identyfikatorów wpisywanych przez ludzi.