Base62 använder vanligtvis siffror och stora och små bokstäver. Det gör det attraktivt för kompakta identifierare utan skiljetecken. Base64 använder 64 symboler och packar grupper av bitar direkt. Även om namnen liknar varandra, modellerar Base62-implementationer ofta ingången som ett nummer, vilket skapar olika interoperabilitetsfrågor.
Alfabetsordningen är en del av formatet
Två Base62-bibliotek kan välja olika ordningsföljder för siffror, versaler och gemener. Samma synliga sträng representerar då olika tal. Ett system som använder 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz stämmer inte med en som placerar små bokstäver först. Spela in alfabetet och testvektorerna i protokollet; Enbart "Base62" räcker inte.
Skiftlägeskänslighet spelar också roll. En proxy med små bokstäver, en skiftlägeskänslig databaskollation eller en manuellt normaliserad identifierare kan ändra dess värde. Om ditt lagringslager ignorerar skiftläge, är varken vanlig Base62 eller Base64 en säker representation utan ett ytterligare designbeslut.
Bevara längden vid kodning av bytes
Tänk på två filer som innehåller hexadecimal 01 och 0001. Tolkade som heltal utan tecken har båda värdet ett. En heltal-till-Base62-konvertering förlorar distinktionen. Ett byte-orienterat Base62-format behöver explicit hantering av inledande noll eller ett längdfält. Detta är särskilt relevant för slumpmässiga tokens och kryptografiska värden med fast längd.
const a = BigInt('0x01');
const b = BigInt('0x0001');
console.log(a === b); // true: numeric equality loses byte length
Välj utifrån vad värdet betyder
Om du förkortar ett databasheltal under ett programs kontroll kan ett dokumenterat Base62-alfabet vara praktiskt. Om du transporterar godtyckliga bytes mellan oberoende system ger Base64URL vanligtvis ett tydligare standardiserat kontrakt. Den ersätter bindestreck och understreck för standard Base64 skiljetecken samtidigt som den behåller samma sexbitarsgruppering.
Kodning är inte randomisering. Sekventiella heltal förblir förutsägbara efter Base62-konvertering. Om identifierare behöver motstå att gissa, generera tillräckligt med oförutsägbar entropi med hjälp av en kryptografisk slumpmässig källa och koda sedan de resulterande byten utan att förlora längd. Behandla inte en token som ser kompakt ut som ett bevis på att dess generering är säker.
När du jämför utdatastorlekar, inkludera prefix, utfyllnadsregler och valfri längdmetadata. Rundtur åtminstone en tom ingång, en nollbyte, flera inledande nollor och en högvärdig byte. Alfabetet Base64URL är standardiserat i RFC 4648; en Base62-applikation måste själv ange ytterligare detaljer.