Kodare och avkodare för Base62

Konvertera text, hexbyte eller filer till Base62 och tillbaka. Utdatan innehåller bara siffror och bokstäver, så den fungerar i URL:er, filnamn och identifierare utan att något behöver kodas om.

Körs helt i din webbläsare. Inget laddas upp.

Så använder du verktyget

  1. Välj Koda för att göra om text till Base62, eller Avkoda för att göra om Base62 till text igen.
  2. Välj den alfabetsordning som ditt system använder: 0-9 A-Z a-z (förvalt) eller 0-9 a-z A-Z.
  3. Skriv eller klistra in indata, eller öppna en liten fil (upp till cirka 20 kB).
  4. Kopiera resultatet eller ladda ned det som en fil.

Vad är Base62?

Base62 använder de tio siffrorna och de 26 bokstäverna A-Z, både som versaler och som gemener. Det är det största alfabetet som enbart består av bokstäver och siffror, så resultatet behöver aldrig kodas om i URL:er, filnamn, databasnycklar eller identifierare i programkod. Varje tecken bär cirka 5,95 bitar, vilket gör utdatan ungefär 1,34 gånger så stor som indatan, nästan lika kompakt som Base64 men utan +, /, =, - eller _.

Eftersom 62 inte är en tvåpotens behandlar verktyget hela indatan som ett enda stort tal och konverterar det till bas 62, precis som Base58 och Base36. Varje inledande nollbyte skrivs som en inledande 0, så att den finns kvar efter en kodning fram och tillbaka. Indatan är begränsad till cirka 20 kB eftersom beräkningen blir långsam för stora datamängder.

Det finns ingen gemensam standard för Base62

Till skillnad från Base64 har Base62 ingen RFC, och implementationerna skiljer sig åt på sätt som gör deras utdata inkompatibla:

  • Alfabetsordning. Verktyget erbjuder 0-9A-Za-z (förvalt) och 0-9a-zA-Z. Vissa andra bibliotek placerar bokstäverna före siffrorna.
  • Inledande nollor. Vissa implementationer behåller en 0 per inledande nollbyte, som det här verktyget gör, andra tar bort dem, och format med fast längd fyller ut resultatet till en bestämd bredd.
  • Vad som kodas. Många Base62-funktioner kodar ett heltal, till exempel ett databas-ID, snarare än en följd av byte. Andra delar upp datan i block av fast storlek.

Om en sträng från ett annat system avkodas till obegripliga tecken här kan du prova det andra alfabetet. Om det fortfarande misslyckas använder systemet troligen en annan metod.

Var Base62 används

URL-förkortare gör om ett löpnummer från databasen till en kort kod: sju Base62-tecken räcker till mer än 3,5 biljoner värden. Sorterbara ID:n som KSUID använder en Base62-form med fast längd på 27 tecken, och många tjänster använder Base62 för API-nycklar och tokens, eftersom ett dubbelklick markerar hela strängen och den kan klistras in var som helst. För att konvertera ett enskilt heltal använder du talbaskonverteraren, eller några rader kod:

// JavaScript: heltal (BigInt) till 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);   // ger '8M0kX'

Specifikation

Alfabet0-9 A-Z a-z
UtdatastorlekCirka 134 % (konvertering med stora tal)
UtfyllnadIngen
StandardIngen formell standard
SkiftlägeskänsligJa

Exempel

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

Vanliga frågor

Är Base62 URL-säker?
Ja. Den använder bara A-Z, a-z och 0-9, som aldrig behöver kodas om i URL:er. Base64URL är också URL-säker, men innehåller tecknen - och _.
Varför avkodas min Base62-sträng till fel text?

Base62-implementationer skiljer sig åt i alfabetsordning och metod. Växla mellan alfabeten 0-9A-Za-z och 0-9a-zA-Z. Om inget av dem fungerar har strängen troligen skapats från ett heltal eller med en annan algoritm.

Är Base62 skiftlägeskänslig?

Ja. Versaler och gemener står för olika värden, så en Base62-sträng får aldrig konverteras till enbart versaler eller enbart gemener.

Ska jag välja Base62 eller Base58?
Base58 utelämnar 0, O, I och l så att de inte förväxlas när någon skriver av en sträng för hand. Base62 behåller alla bokstäver och siffror och blir något kortare. Välj Base58 för strängar som människor skriver och Base62 för strängar som hanteras av maskiner.