Så använder du verktyget
- Välj Koda för att göra om text till Crockford Base32, eller Avkoda för att göra om den till text.
- Behåll varianten Crockford och se till att Utfyllnad är avstängd. Slå på Gemener för utdata med gemener.
- Skriv eller klistra in indatan, eller öppna en fil. Vid avkodning ignoreras bindestreck och mellanslag.
- Kopiera resultatet eller ladda ned det som en fil.
Vad är Crockford Base32?
Douglas Crockford utformade det här Base32-alfabetet för identifierare som människor läser, skriver in och säger högt. Det använder de tio siffrorna och 22 versaler: 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Bokstäverna I och L är utelämnade eftersom de liknar siffran 1, O eftersom den liknar 0, och U för att minska risken att råka stava till oanständiga ord.
Varje symbol bär 5 bitar, så 5 byte blir 8 tecken, precis som i Base32 enligt RFC 4648. Symbolerna står i stigande ASCII-ordning, så strängar utan utfyllnad i samma skiftläge sorteras i samma ordning som datan de kodar. Crockfords specifikation använder ingen utfyllnad, så låt alternativet Utfyllnad vara avstängt.
Förlåtande avkodning
Crockfords specifikation uppmanar avkodare att godta det som människor faktiskt skriver, och det gör det här verktyget:
- Versaler och gemener behandlas likadant.
- Bokstaven O läses som siffran 0, och bokstäverna I och L läses som 1.
- Bindestreck, som kan läggas in för att göra långa koder lättare att läsa, ignoreras, liksom mellanslag och radbrytningar.
Bokstaven U är inte giltig och rapporteras tillsammans med sin position.
Byte, tal och ULID
Crockford beskriver sin kodning i termer av tal, medan det här verktyget kodar en följd av byte i grupper om 5 bitar, på samma sätt som RFC 4648, med Crockfords symboler. När antalet bitar inte är en multipel av 5 lägger talbaserade implementationer de överblivna nollbitarna först, medan det här verktyget lägger dem sist, så resultaten kan skilja sig åt.
ULID är ett vanligt exempel. Formatet använder Crockford-alfabetet men kodar sitt 128-bitarsvärde som ett tal med 26 tecken, så de 16 bytena i en ULID blir inte samma sträng här, och om du avkodar en ULID får du byte som är förskjutna två bitar. Den valfria kontrollsymbolen i Crockfords specifikation, ett extra tecken för värdet modulo 37, stöds inte: verktyget varken lägger till eller kontrollerar den.
Specifikation
| Alfabet | 0-9 A-Z utom I L O U |
|---|---|
| Utdatastorlek | 8 tecken per 5 byte (160 %) |
| Utfyllnad | Ingen |
| Standard | Crockford Base32 (2002) |
| Skiftlägeskänslig | Nej |
Exempel
| Indata (UTF-8) | Utdata |
|---|---|
Hello, World! | 91JPRV3F5GG5EVVJDHJ22 |
Base64.is | 89GQ6S9P6GQ6JWR |
你好 | WJYT1SD5QM |
Vanliga frågor
Är Crockford Base32 skiftlägeskänslig?
Nej. Utdatan skrivs som standard med versaler, och alternativet Gemener byter till gemener. Avkodaren accepterar båda, även blandat i samma sträng.
Varför saknas I, L, O och U i alfabetet?
I och L förväxlas lätt med 1, och O med 0, så de är utelämnade och läses som dessa siffror vid avkodning. U är uteslutet för att slumpmässiga koder ska vara mindre benägna att bilda stötande engelska ord.
Stöder verktyget Crockfords kontrollsymbol?
* ~ $ = U. Verktyget varken lägger till eller kontrollerar den, så ta bort en eventuell kontrollsymbol före avkodning.Kan jag avkoda en ULID här?
Inte till dess exakta 16 byte. ULID kodar sina 128 bitar som ett enda tal med de överblivna bitarna först, medan det här verktyget arbetar med bytegrupper och lägger dem sist. Använd ett ULID-bibliotek för att läsa ut tidsstämpeln och den slumpmässiga delen.