Base62-koder og -dekoder

Konvertér tekst, hexbytes eller filer til Base62 og tilbage. Outputtet indeholder kun cifre og bogstaver, så det kan bruges i URL'er, filnavne og id'er uden escaping.

Kører udelukkende i din browser. Intet bliver uploadet.

Sådan bruger du værktøjet

  1. Vælg Kod for at omdanne tekst til Base62, eller Afkod for at omdanne Base62 tilbage til tekst.
  2. Vælg under Alfabet den rækkefølge, der passer til dit system: 0-9 A-Z a-z (standard) eller 0-9 a-z A-Z.
  3. Skriv eller indsæt dit input, eller åbn en lille fil (op til ca. 20 KB).
  4. Kopiér resultatet, eller download det som en fil.

Hvad er Base62?

Base62 bruger de ti cifre, de 26 store bogstaver og de 26 små bogstaver. Det er det største alfabet, der kun består af bogstaver og cifre, så resultatet kræver ingen escaping i URL'er, filnavne, databasenøgler eller id'er i kode. Hvert tegn bærer ca. 5,95 bit, hvilket gør outputtet ca. 1,34 gange så stort som inputtet, næsten lige så kompakt som Base64, men uden +, /, =, - eller _.

Da 62 ikke er en potens af to, behandler dette værktøj hele inputtet som ét stort tal og konverterer det til base 62, ligesom Base58 og Base36. Hver foranstillet nulbyte skrives som et foranstillet 0, så den overlever turen frem og tilbage. Inputtet er begrænset til ca. 20 KB, fordi beregningerne bliver langsomme ved store datamængder.

Der findes ingen fælles Base62-standard

I modsætning til Base64 har Base62 ingen RFC, og implementeringerne adskiller sig på måder, der gør deres output inkompatibelt:

  • Alfabetets rækkefølge. Dette værktøj tilbyder 0-9A-Za-z (standard) og 0-9a-zA-Z. Nogle andre biblioteker sætter bogstaverne før cifrene.
  • Foranstillede nuller. Nogle implementeringer beholder ét 0 pr. foranstillet nulbyte, som dette værktøj gør, andre udelader dem, og formater med fast længde udfylder resultatet til en bestemt bredde.
  • Hvad der kodes. Mange Base62-funktioner koder et heltal, for eksempel et database-id, i stedet for en sekvens af bytes. Andre deler dataene op i blokke af fast størrelse.

Hvis en streng fra et andet system bliver til volapyk her, så prøv den anden mulighed under Alfabet. Hvis det stadig ikke virker, bruger systemet sandsynligvis en anden metode.

Her bruges Base62

URL-forkortere omdanner et fortløbende id til en kort kode: Syv Base62-tegn dækker mere end 3,5 billioner værdier. Sorterbare id'er som KSUID bruger en fast Base62-form på 27 tegn, og mange tjenester bruger Base62 til API-nøgler og tokens, fordi et dobbeltklik markerer hele strengen, og den kan indsættes overalt. Brug talsystemkonverteren til at konvertere et enkelt heltal, eller skriv nogle få linjer kode:

// JavaScript: heltal (BigInt) til Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function toBase62(n) {
  let s = '';
  do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);
  return s;
}
toBase62(123456789n);   // '8M0kX'

Specifikation

Alfabet0-9 A-Z a-z
OutputstørrelseCa. 134 % (konvertering som ét stort tal)
UdfyldningIngen
StandardIngen formel standard
Skelner mellem store og små bogstaverJa

Eksempler

Input (UTF-8)Output
Hello, World!1wJfrzvdbtXUOlUjUf
Base64.isNWxjrFq4r3rv
你好19PqtKE1t

Ofte stillede spørgsmål

Er Base62 URL-sikker?
Ja. Den bruger kun A-Z, a-z og 0-9, som aldrig skal escapes i URL'er. Base64URL er også URL-sikker, men indeholder tegnene - og _.
Hvorfor bliver min Base62-streng afkodet til forkert tekst?

Base62-implementeringer adskiller sig i alfabetets rækkefølge og i metode. Skift mellem alfabeterne 0-9A-Za-z og 0-9a-zA-Z. Hvis ingen af dem virker, er strengen sandsynligvis lavet ud fra et heltal eller med en anden algoritme.

Skelner Base62 mellem store og små bogstaver?

Ja. Store og små bogstaver står for forskellige værdier, så en Base62-streng må aldrig konverteres til store eller små bogstaver.

Skal jeg bruge Base62 eller Base58?
Base58 udelader 0, O, I og l, så folk ikke forveksler dem, når de skriver af i hånden. Base62 beholder alle bogstaver og cifre og er en smule kortere. Vælg Base58 til strenge, som mennesker skriver, og Base62 til strenge, som maskiner håndterer.