Base62 bruker ofte sifre og store og små bokstaver. Det gjør det attraktivt for kompakte identifikatorer uten tegnsetting. Base64 bruker 64 symboler og pakker grupper av biter direkte. Selv om navnene er like, modellerer Base62-implementeringer ofte inngangen som et tall, noe som skaper forskjellige interoperabilitetsspørsmål.
Alfabetrekkefølgen er en del av formatet
To Base62-biblioteker kan velge forskjellige rekkefølger for sifre, store bokstaver og små bokstaver. Den samme synlige strengen representerer da forskjellige tall. Et system som bruker 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz er ikke enig med en som plasserer små bokstaver først. Registrer alfabetet og testvektorene i protokollen; "Base62" alene er ikke nok.
Store og små bokstaver er også viktig. En proxy med små bokstaver, en databasekollasjon uten store og små bokstaver eller en manuelt normalisert identifikator kan endre verdien. Hvis lagringslaget ditt ignorerer store og små bokstaver, er verken vanlig Base62 eller Base64 en sikker representasjon uten en ekstra designbeslutning.
Ta vare på lengden når du koder byte
Tenk på to filer som inneholder heksadesimal 01 og 0001. Tolket som heltall uten fortegn, har begge verdi én. En bare heltall-til-Base62-konvertering mister distinksjonen. Et byte-orientert Base62-format trenger eksplisitt innledende-null-håndtering eller et lengdefelt. Dette er spesielt relevant for tilfeldige tokens og kryptografiske verdier med fast lengde.
const a = BigInt('0x01');
const b = BigInt('0x0001');
console.log(a === b); // true: numeric equality loses byte length
Velg ut fra hva verdien betyr
Hvis du forkorter et databaseheltall under ett programs kontroll, kan et dokumentert Base62-alfabet være praktisk. Hvis du transporterer vilkårlige bytes mellom uavhengige systemer, gir Base64URL vanligvis en klarere standardisert kontrakt. Den erstatter bindestrek og understrek for standard Base64 tegnsetting mens den beholder den samme seks-bits grupperingen.
Koding er ikke randomisering. Sekvensielle heltall forblir forutsigbare etter Base62-konvertering. Hvis identifikatorer trenger å motstå å gjette, generer tilstrekkelig uforutsigbar entropi ved hjelp av en kryptografisk tilfeldig kilde, og kod deretter de resulterende bytene uten å miste lengde. Ikke behandle et kompakt utseende token som et bevis på at genereringen er sikker.
Når du sammenligner utdatastørrelser, ta med prefikser, utfyllingsregler og metadata for alle lengder. Rundtur minst en tom inngang, en nullbyte, flere innledende nuller og en høyverdig byte. Base64URL alfabetet er standardisert i RFC 4648; en Base62-applikasjon må spesifisere tilleggsopplysningene selv.