Sådan bruger du værktøjet
- Vælg Kod for at gøre tekst til Crockford Base32, eller Afkod for at gøre den til tekst igen.
- Behold varianten Crockford, og sørg for, at Udfyldning er slået fra. Slå Små bogstaver til for at få output med små bogstaver.
- Skriv eller indsæt dit input, eller åbn en fil. Ved afkodning ignoreres bindestreger og mellemrum.
- Kopiér resultatet, eller download det som en fil.
Hvad er Crockford Base32?
Douglas Crockford designede dette Base32-alfabet til id'er, som mennesker læser, skriver og siger højt. Det bruger de ti cifre og 22 store bogstaver: 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Bogstaverne I og L er udeladt, fordi de ligner cifret 1, O fordi det ligner 0, og U for at mindske risikoen for ved et uheld at stave uanstændige ord.
Hvert symbol bærer 5 bit, så 5 bytes bliver til 8 tegn, ligesom i RFC 4648 Base32. Symbolerne står i stigende ASCII-rækkefølge, så strenge uden udfyldning og med samme slags bogstaver sorteres i samme rækkefølge som de data, de koder. Crockfords specifikation bruger ingen udfyldning, så lad indstillingen Udfyldning være slået fra.
Tolerant afkodning
Crockfords specifikation beder dekodere om at acceptere det, folk faktisk skriver, og det gør dette værktøj:
- Store og små bogstaver behandles ens.
- Bogstavet O læses som cifret 0, og bogstaverne I og L læses som 1.
- Bindestreger, som kan indsættes for at gøre lange koder lettere at læse, ignoreres, og det samme gør mellemrum og linjeskift.
Bogstavet U er ikke gyldigt og rapporteres sammen med sin position.
Bytes, tal og ULID
Crockford beskriver sin kodning ud fra tal, mens dette værktøj koder en sekvens af bytes i grupper på 5 bit på RFC 4648-måden, blot med Crockfords symboler. Når antallet af bit ikke er et multiplum af 5, placerer talbaserede implementeringer de overskydende nulbit forrest, mens dette værktøj placerer dem bagerst, så resultaterne kan være forskellige.
ULID er et almindeligt eksempel. Det bruger Crockford-alfabetet, men koder sin 128-bit-værdi som et tal på 26 tegn, så de 16 bytes i et ULID giver ikke den samme streng her, og afkodning af et ULID giver bytes, der er forskudt med to bit. Det valgfrie kontrolsymbol fra Crockfords specifikation, et ekstra tegn for værdien modulo 37, understøttes ikke: Dette værktøj hverken tilføjer eller verificerer det.
Specifikation
| Alfabet | 0-9 A-Z uden I L O U |
|---|---|
| Outputstørrelse | 8 tegn pr. 5 bytes (160 %) |
| Udfyldning | Ingen |
| Standard | Crockford Base32 (2002) |
| Skelner mellem store og små bogstaver | Nej |
Eksempler
| Input (UTF-8) | Output |
|---|---|
Hello, World! | 91JPRV3F5GG5EVVJDHJ22 |
Base64.is | 89GQ6S9P6GQ6JWR |
你好 | WJYT1SD5QM |
Ofte stillede spørgsmål
Skelner Crockford Base32 mellem store og små bogstaver?
Nej. Outputtet er som standard med store bogstaver, og indstillingen Små bogstaver skifter til små. Dekoderen accepterer begge dele, også blandet i én streng.
Hvorfor mangler I, L, O og U i alfabetet?
I og L forveksles let med 1 og O med 0, så de er udeladt og læses som disse cifre ved afkodning. U er udelukket, så tilfældige koder er mindre tilbøjelige til at danne stødende engelske ord.
Understøtter dette værktøj Crockfords kontrolsymbol?
* ~ $ = U. Dette værktøj hverken tilføjer eller verificerer det, så fjern et eventuelt kontrolsymbol før afkodning.Kan jeg afkode et ULID her?
Ikke til dets præcise 16 bytes. ULID koder sine 128 bit som ét tal med de overskydende bit forrest, mens dette værktøj arbejder med bytegrupper og placerer dem bagerst. Brug et ULID-bibliotek til at læse tidsstemplet og de tilfældige dele.