Base85-kodare och avkodare
Base85 pressar fyra bytes till fem ASCII-tecken - tätare än Base64:s 3-till-4-förhållande - genom att använda ett alfabet med 85 tecken i stället för 64. Adobes Ascii85-variant finns inuti varje PostScript- och PDF-fil; den nyare Z85-varianten (ZeroMQ) undviker tecken som ställer till det i C-strängar och XML. Det här verktyget kodar och avkodar båda, med valfria avgränsare.
Så konverterar du Base85
-
1
Välj variant
Ascii85 för PDF/PostScript-resurser; Z85 för källkod och nätverksprotokoll.
-
2
Klistra in text eller ladda upp en fil
Kodningsriktningen tar råa bytes; avkodningsriktningen tar en Base85-sträng.
-
3
Encodern delar upp i 4-byte-block
Varje 4-byte-block blir en Base85-sträng med 5 tecken. Det sista blocket paddas och trunkeras.
-
4
Kopiera resultatet
Ascii85 kan omslutas med avgränsarna `<~` och `~>`; Z85 utan avgränsare.
Jämförelse av storleksoverhead
| Kodning | Tecken per 4 bytes | Overhead jämfört med binärt |
|---|---|---|
| Hex | 8 | +100% |
| Base64 | 5.33 (avrundas upp till 8 med padding) | +37% |
| Base85 | 5 | +25% |
| Rå binär | 4 | 0 |
Alltså blir 1 MB binärt 1.25 MB i Base85, 1.33 MB i Base64 och 2 MB i hex.
Ascii85 jämfört med Z85-alfabet
Ascii85 (RFC 1924 / Adobe): tecken ! till u (33-117 i ASCII), plus z som genväg för 4 nollbytes. Används i PostScript- och PDF-strömmar, omslutet som <~...~>.
Z85 (ZeroMQ): en delmängd som undviker citattecken och escapes:
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
Säkert att bädda in i JSON, XML, C-strängar och källkod utan escaping.
Så fungerar matematiken
Varje 4 bytes läses som ett big-endian 32-bitars heltal N. De 5 utdatatecknen är siffrorna för N i bas 85, mest signifikant först. 85^5 = 4 437 053 125, vilket är större än 2^32, så 4 bytes får alltid plats i 5 tecken.
När Ascii85 spelar roll
Öppna vilken PDF som helst i en textredigerare och sök efter ASCII85Decode - Adobe använder det som ett filter för inbäddade bilder och typsnitt som måste överleva en 7-bitars transport (gamla faxliknande system). Z85 används brett i ZeroMQ CURVE-autentiseringsnycklar.
Specialfall
- 4-byte-block med bara nollor - Ascii85 kodar det som det enda tecknet
zi stället för!!!!!. - 4-byte-block med bara mellanslag - Vissa varianter använder
yför fyra mellanslag, andra gör det inte. - Sista partiella blocket - Paddas med nollbytes, och motsvarande antal utdatatecken trunkeras i slutet.
Vanliga frågor
Mindre utdata, ja. Universellt kompatibelt, nej. Base85 innehåller tecken som <, >, &, " (i Ascii85) som behöver escapes i XML, JSON och URL:er. Z85 undviker detta men de flesta verktyg talar Base64 inbyggt.
Ascii85 om du arbetar med PostScript- eller PDF-filer. Z85 för källkod, konfigurationsfiler och nätverksprotokoll. RFC 1924 IPv6-kodning är en annan tilldelning av samma 85 tecken och används sällan i praktiken.
Nej. De använder olika alfabet. Att avkoda Ascii85 med en Z85-tabell ger skräp. Välj en innan du kodar och håll dig till den.
För Adobe Ascii85 i PDF- eller PostScript-strömmar, ja - de markerar den kodade regionen. För fristående användning och all Z85-utdata behövs inga avgränsare.
Relaterade verktyg
AES kryptera / dekryptera
Kryptera och dekryptera text med låg risk med AES-chiffer från OpenSSL. Lösenfrasen hashas med SHA-256 och Base64-utdata innehåller IV plus chiffertext.
A1Z26-chifferkodare
Koda text med A1Z26-chiffret (A=1, B=2, ... Z=26) eller avkoda en siffersekvens tillbaka till bokstäver, med anpassningsbar separator.
Atbash-kodare
Koda eller avkoda text med Atbash-chiffret, en hebreisk substitutionsmetod som mappar A-Z till Z-A. Samma åtgärd krypterar och dekrypterar.
Base32-kodare och avkodare
Koda och avkoda Base32-strängar med RFC 4648-alfabetet. Användbart för TOTP-hemligheter, skiftlägesokänsliga tokens och identifierare som människor skriver in.
bcrypt-generator
Generera en bcrypt-hash från ett klartextlösenord. Justerbar kostnadsfaktor från 4 till 14, kompatibel med Laravel, Django, Node och PHP.
bcrypt-hashgenerator
Generera bcrypt-hashar eller verifiera ett klartextlösenord mot en befintlig bcrypt-hash. Generera och verifiera sida vid sida i ett verktyg.