Naar de inhoud

Base32-, Base58- en Ascii85-converter

Codeer tekst of ruwe bytes als Base32, Base58, Ascii85 of Z85, of decodeer een van deze weer, met het eigen alfabet en de opvulregels van elke codering. De uitwerkingstabel laat zien hoe de eerste bytes in tekens veranderen. Base64 valt onder de Tekstencoder & -decoder. Draait in je browser; er wordt niets geüpload.

Modus

Letters A–Z en cijfers 2–7, vijf bits per teken, opgevuld met = tot een veelvoud van acht tekens. Hoofdletters doen er bij decoderen niet toe.

Hoe het is uitgerekend

De bytes worden geschreven als bits en in groepen van vijf geknipt. Elke groep is een getal van 0 tot 31 en kiest één teken.

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

De eerste 16 rijen worden getoond.

Zo gebruik je de coderingsconverter

  1. 1. Kies een codering. Base32, Base32 met het extended hex-alfabet, Base58 met het Bitcoin-alfabet, Ascii85 zoals Adobe die gebruikt, of Z85. Een notitie onder het menu beschrijft de codering die je hebt gekozen.
  2. 2. Geef aan wat de gegevens zijn. Tekst wordt gelezen als UTF-8-bytes. Hex-bytes laat je willekeurige binaire gegevens coderen, zoals een sleutel, door ze in paren te typen zoals 86 4f d2 6f.
  3. 3. Codeer of decodeer. Coderen geeft tekst die bestaat uit het alfabet van de codering. Decoderen zet die terug in bytes, getoond als tekst of als hex. Spaties en regeleinden in de invoer worden genegeerd.
  4. 4. Controleer de opties. Base32 kan met of zonder =-opvulling worden geschreven. Ascii85 kan worden omsloten door <~ en ~>, en kan vier nulbytes als z schrijven.

Waar deze coderingen voor dienen

Geen van deze is versleuteling. Elk zet bytes, die misschien niet afdrukbaar zijn, om in tekst die in een e-mail, een URL, een QR-code of een configuratiebestand kan worden geplakt, en elk wordt ongedaan gemaakt door iedereen die de naam van de codering kent. Ze verschillen in het alfabet dat ze gebruiken en in hoeveel langer de tekst is dan de gegevens.

CoderingTekensLengte t.o.v. bytesHello, World wordt
Base32 (RFC 4648)328 ÷ 5 zo langJBSWY3DPFQQFO33SNRSA====
Base32 extended hex328 ÷ 5 zo lang91IMOR3F5GG5ERRIDHI0====
Base58 (Bitcoin)58ongeveer 1,37 keer2NEpo7TZsLBYdvo5V
Ascii85 (Adobe)855 ÷ 4 zo lang<~87cURD_*#4DfTZ)~>
Z85 (ZeroMQ)855 ÷ 4 zo langnm=QNz.92jz/PV8

Base32

Base32 verdeelt de bytes in groepen van 5 bits en schrijft elke groep als een van 32 tekens, A–Z en 2–7. Het gebruikt alleen de cijfers 2 tot en met 7 en laat 0, 1 en 8 weg, die op O, I en B lijken, en het maakt geen onderscheid tussen hoofdletters en kleine letters, zodat mensen het hardop kunnen voorlezen of overtypen. Het opvulteken = rondt de lengte af naar een veelvoud van acht. RFC 4648 geeft testvectoren zoals foobar → MZXW6YTBOI======. Geheimen van authenticator-apps en Tor-onion-adressen zijn Base32.

Base58

Base58 behandelt de hele invoer als één groot getal en schrijft het in grondtal 58, zonder 0, O, I en l, en zonder de symbolen + en /. Zo kan het resultaat met een dubbelklik worden gekopieerd en is het minder snel verkeerd te lezen. Elke voorloopnulbyte wordt geschreven als het eerste teken, 1. Het Bitcoin-alfabet is één van meerdere Base58-alfabetten; die van Ripple en Flickr ordenen de tekens anders, dus controleer welke je gegevens gebruiken. Bitcoin-adressen voegen er bovenop een controlesom en een versiebyte aan toe, een schema dat Base58Check heet en dat deze tool niet berekent.

Ascii85 en Z85

Beide lezen vier bytes als een getal van 32 bits en schrijven dat als vijf cijfers in grondtal 85, en daarom zijn ze maar 25 procent langer dan de gegevens. Adobe's Ascii85, gebruikt in PostScript en PDF, gebruikt de tekens van ! tot u, schrijft vier nulbytes als z en omsluit de gegevens meestal met <~ en ~>. Een laatste groep van één tot drie bytes levert één teken meer op dan het aantal bytes. Z85, gedefinieerd in ZeroMQ's RFC 32, gebruikt een ander alfabet van 85 tekens dat is gekozen om aanhalingstekens en backslashes in broncode te vermijden. Het heeft geen z-afkorting en geen korte laatste groep, dus de invoer moet een veelvoud van vier bytes zijn. Het voorbeeld in de specificatie zijn de acht bytes 86 4f d2 6f b5 59 f7 5b, die worden gecodeerd tot HelloWorld. Er bestaan andere base-85-alfabetten, zoals het alfabet uit RFC 1924 dat Git gebruikt, dus kies het alfabet dat bij je bron hoort.

Veelgestelde vragen

Is Base32 of Base58 versleuteling?
Nee. Het zijn coderingen: iedereen kan ze omkeren, omdat het alfabet en de regels openbaar zijn. Ze maken gegevens afdrukbaar en makkelijker te kopiëren, niet geheim.
Waarom laat Base58 sommige tekens weg?
Om op elkaar lijkende tekens en symbolen te vermijden. Het laat 0 (nul), O (hoofdletter o), I (hoofdletter i) en l (kleine letter L) weg, die in veel lettertypen met elkaar kunnen worden verward, en + en /, die de selectie met een dubbelklik breken. Dat laat 58 tekens over.
Hoe decodeer ik een Base32-tekenreeks?
Kies Base32, schakel over naar Decoderen en plak de tekenreeks. Hoofdletters doen er niet toe, en de afsluitende =-tekens zijn optioneel. Als je een fout krijgt die tekens noemt, is de tekenreeks waarschijnlijk Base32 extended hex, Base64 of een andere codering.
Wat is het verschil tussen Ascii85 en Z85?
Beide gebruiken vijf tekens voor vier bytes, maar hun alfabetten verschillen. Ascii85 gebruikt de tekens van ! tot u, heeft een z-afkorting voor nullen en kan omsloten zijn door <~ en ~>. Z85 gebruikt een alfabet dat veilig is voor broncode en geen afkortingen.
Waarom zegt Z85 dat ik een veelvoud van vier bytes nodig heb?
De Z85-specificatie definieert geen opvulling. De gegevens moeten een geheel aantal groepen van 4 bytes zijn, en de tekst een veelvoud van vijf tekens. Voeg zelf bytes toe, of gebruik Ascii85, dat een korte laatste groep aankan.
Hoe codeer ik een Base64-tekenreeks?
Deze pagina doet geen Base64. De Tekstencoder & -decoder zet tekst om in Base64, URL's en HTML-entiteiten en weer terug, en de XOR Cipher-pagina kan hex-bytes als Base64 tonen.

Gerelateerde tools

Meer hulpmiddelen: Codes en geheimschriften