UTILS.
100% in de browser
🔢

Base62 coderen & decoderen

Converteer integers of bytestrings van en naar compact URL-veilig Base62 (0-9A-Za-z), met BigInt-ondersteuning en een GMP-alfabetvariant, volledig in de browser.

— uitvoer verschijnt hier —

Over deze tool

De Base62-tool codeert getallen en bytestrings naar het compacte alfabet van 62 symbolen 0-9A-Za-z en decodeert ze weer terug. Base62 is populair voor korte ID's, URL-slugs en verkorte links omdat het URL-veilig blijft zonder de tekens +, / of = die Base64 gebruikt. Alle conversie draait lokaal in je browser met JavaScript BigInt, dus willekeurig grote waarden zijn exact en er wordt niets geüpload.

Integer-modus behandelt de invoer als een integer met willekeurige precisie (decimaal, of met 0x-voorvoegsel hex): coderen deelt herhaaldelijk door 62 en zet alphabet[rest] ervoor, en decoderen berekent Σ alphabet.indexOf(ch)·62^positie. Byte-modus behandelt de invoerbytes (UTF-8-tekst of hex) als één big-endian bignum en past dezelfde base-62-conversie toe, maar het behoudt ook voorloopnul-bytes op de Bitcoin-Base58-manier: elke voorloop-0x00-byte wordt één voorloop-'0'-teken zodat rondgangen verliesloos zijn.

Het standaardalfabet ordent cijfers, dan hoofdletters, dan kleine letters (0-9A-Za-z). Sommige bibliotheken — met name die gebouwd op GMP — ordenen cijfers, kleine letters, dan hoofdletters (0-9a-zA-Z), wat andere uitvoer produceert voor dezelfde waarde; de alfabet-schakelaar laat je afstemmen op welke jouw systeem gebruikt. Kies de richting, de integer- of byte-modus, het invoerformaat voor bytes, en de alfabetvariant.

Veelgestelde vragen

Wat is het verschil tussen integer- en byte-modus?
Integer-modus converteert een enkel getal met willekeurige precisie (decimaal of 0x-hex) naar een Base62-string en terug naar een decimale integer. Byte-modus converteert een reeks bytes (uit UTF-8-tekst of hex) als big-endian bignum, en behoudt voorloopnul-bytes als voorloop-alfabetnul-tekens zodat binaire data exact rondgaat.
Waarom zijn er twee alfabetten?
Het standaardalfabet is 0-9A-Za-z (hoofdletters vóór kleine letters). Op GMP gebaseerde bibliotheken gebruiken 0-9a-zA-Z (kleine letters vóór hoofdletters). Dezelfde waarde codeert onder elk anders, dus met de schakelaar kun je samenwerken met welke volgorde je andere tools ook verwachten.
Hoe groot een getal kan het aan?
Elke grootte. De tool gebruikt JavaScript BigInt, dus er is geen 2^53-precisielimiet — je kunt integers en bytestrings van willekeurige lengte exact coderen en decoderen, wat essentieel is voor hashes, UUID's en lange identifiers.
Hoe worden voorloopnullen behandeld in byte-modus?
Elke voorloop-0x00-byte wordt gecodeerd als één voorloop-alfabetnul-teken (zoals Base58's voorloop-'1'). Bij het decoderen herstelt elk voorloop-alfabetnul-teken één 0x00-byte, dus coderen en vervolgens decoderen levert de exacte oorspronkelijke bytereeks terug.

Meer tools