Base62 bruger almindeligvis cifre og store og små bogstaver. Det gør det attraktivt for kompakte identifikatorer uden tegnsætning. Base64 bruger 64 symboler og pakker grupper af bit direkte. Selvom navnene ligner hinanden, modellerer Base62-implementeringer ofte inputtet som et tal, hvilket skaber forskellige interoperabilitetsspørgsmål.
Alfabetrækkefølgen er en del af formatet
To Base62-biblioteker kan vælge forskellige rækkefølger for cifre, store bogstaver og små bogstaver. Den samme synlige streng repræsenterer så forskellige tal. Et system, der bruger 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz er ikke enig med en, der placerer små bogstaver først. Optag alfabetet og testvektorerne i protokollen; "Base62" alene er ikke nok.
Store og små bogstaver har også betydning. En proxy med små bogstaver, en databasesortering uden store og små bogstaver eller en manuelt normaliseret identifikator kan ændre dens værdi. Hvis dit lagerlag ignorerer case, er hverken almindelig Base62 eller Base64 en sikker repræsentation uden en yderligere designbeslutning.
Bevar længden ved kodning af bytes
Overvej to filer, der indeholder hexadecimal 01 og 0001. Fortolket som heltal uden fortegn har begge værdien ét. En blot heltal-til-Base62-konvertering mister skelnen. Et byte-orienteret Base62-format kræver eksplicit håndtering af førende nul eller et længdefelt. Dette er især relevant for tilfældige tokens og kryptografiske værdier med fast længde.
const a = BigInt('0x01');
const b = BigInt('0x0001');
console.log(a === b); // true: numeric equality loses byte length
Vælg ud fra, hvad værdien betyder
Hvis du forkorter et databaseheltal under en applikations kontrol, kan et dokumenteret Base62-alfabet være praktisk. Hvis du transporterer vilkårlige bytes mellem uafhængige systemer, giver Base64URL normalt en klarere standardiseret kontrakt. Den erstatter bindestreg og understregning for standardtegnsætningen Base64, mens den bevarer den samme seks-bit-gruppering.
Kodning er ikke randomisering. Sekventielle heltal forbliver forudsigelige efter Base62-konvertering. Hvis identifikatorer skal modstå at gætte, skal du generere tilstrækkelig uforudsigelig entropi ved hjælp af en kryptografisk tilfældig kilde og derefter kode de resulterende bytes uden at miste længde. Behandl ikke et kompakt udseende token som et bevis på, at dets generation er sikker.
Når du sammenligner outputstørrelser, skal du inkludere præfikser, udfyldningsregler og eventuelle længdemetadata. Rundtur mindst en tom indgang, en nulbyte, flere foranstillede nuller og en byte med høj værdi. Base64URL alfabetet er standardiseret i RFC 4648; en Base62-applikation skal selv angive de yderligere detaljer.