Zo gebruik je het
- Kies Coderen om tekst om te zetten naar Crockford Base32, of Decoderen om het terug te zetten naar tekst.
- Laat bij Variant Crockford geselecteerd en zorg dat Opvulling uit staat. Zet Kleine letters aan voor uitvoer in kleine letters.
- Typ of plak je invoer, of open een bestand. Bij het decoderen worden koppeltekens en spaties genegeerd.
- Kopieer het resultaat of download het als bestand.
Wat is Crockford Base32?
Douglas Crockford ontwierp dit Base32-alfabet voor identificatoren die mensen lezen, intypen en hardop uitspreken. Het gebruikt de tien cijfers en 22 hoofdletters: 0123456789ABCDEFGHJKMNPQRSTVWXYZ. De letters I en L ontbreken omdat ze op het cijfer 1 lijken, de O omdat die op 0 lijkt, en de U om de kans te verkleinen dat er per ongeluk obscene woorden ontstaan.
Elk symbool draagt 5 bits, dus 5 bytes worden 8 tekens, net als bij RFC 4648 Base32. De symbolen staan in oplopende ASCII-volgorde, dus strings zonder opvulling in één soort letters worden in dezelfde volgorde gesorteerd als de gegevens die ze coderen. De specificatie van Crockford gebruikt geen opvulling, dus laat de optie Opvulling uit staan.
Vergevingsgezind decoderen
De specificatie van Crockford vraagt decoders om te accepteren wat mensen echt intypen, en deze tool doet dat:
- Hoofdletters en kleine letters worden hetzelfde behandeld.
- De letter O wordt gelezen als het cijfer 0, en de letters I en L als 1.
- Koppeltekens, die je kunt invoegen om lange codes leesbaarder te maken, worden genegeerd, net als spaties en regeleinden.
De letter U is niet geldig en wordt met zijn positie gemeld.
Bytes, getallen en ULID
Crockford beschrijft zijn codering in termen van getallen, terwijl deze tool een reeks bytes in groepen van 5 bits codeert, op de manier van RFC 4648, met de symbolen van Crockford. Als het aantal bits geen veelvoud van 5 is, zetten implementaties die met getallen werken de extra nulbits vooraan, terwijl deze tool ze achteraan zet. De resultaten kunnen dus verschillen.
ULID is een bekend voorbeeld. Het gebruikt het alfabet van Crockford, maar codeert zijn 128-bits waarde als een getal in 26 tekens. De 16 bytes van een ULID leveren hier dus niet dezelfde string op, en het decoderen van een ULID geeft bytes die twee bits zijn verschoven. Het optionele controlesymbool uit de specificatie van Crockford, een extra teken voor de waarde modulo 37, wordt niet ondersteund: deze tool voegt het niet toe en controleert het ook niet.
Specificatie
| Alfabet | 0-9 A-Z zonder I L O U |
|---|---|
| Uitvoergrootte | 8 tekens per 5 bytes (160%) |
| Opvulling | Geen |
| Standaard | Crockford Base32 (2002) |
| Hoofdlettergevoelig | Nee |
Voorbeelden
| Invoer (UTF-8) | Uitvoer |
|---|---|
Hello, World! | 91JPRV3F5GG5EVVJDHJ22 |
Base64.is | 89GQ6S9P6GQ6JWR |
你好 | WJYT1SD5QM |
Veelgestelde vragen
Is Crockford Base32 hoofdlettergevoelig?
Nee. De uitvoer is standaard in hoofdletters, en met de optie Kleine letters schakel je over op kleine letters. De decoder accepteert beide, zelfs door elkaar in één string.
Waarom ontbreken I, L, O en U in het alfabet?
I en L worden makkelijk aangezien voor 1, en O voor 0. Ze zijn daarom weggelaten en worden bij het decoderen als die cijfers gelezen. U is uitgesloten zodat willekeurige codes minder snel aanstootgevende Engelse woorden vormen.
Ondersteunt deze tool het controlesymbool van Crockford?
* ~ $ = U worden gebruikt. Deze tool voegt het niet toe en controleert het niet, dus verwijder een controlesymbool voordat je decodeert.Kan ik hier een ULID decoderen?
Niet naar precies de oorspronkelijke 16 bytes. ULID codeert zijn 128 bits als één getal met de extra bits vooraan, terwijl deze tool met bytegroepen werkt en ze achteraan zet. Gebruik een ULID-bibliotheek om de tijdstempel en het willekeurige deel uit te lezen.