Nano ID – en generator för korta, anpassningsbara unika identifierare
Nano ID-generatorn på den här sidan skapar unika identifierare enligt Nano ID-formatet. Du bestämmer längden och vilka tecken som får användas, och verktyget producerar en eller flera ID:n som är kompakta, URL-säkra och resistenta mot kollisioner. Till skillnad från UUID, som alltid är 36 tecken långt (exempelvis 550e8400-e29b-41d4-a716-446655440000), eller ULID med 26 tecken, har Nano ID en standardlängd på 21 tecken. Det gör det kortare än en UUID samtidigt som det erbjuder jämförbar kollisionsresistens. Både längden och alfabetet är helt justerbara – det är vad som gör den här generatorn unik.
Hur generatorn fungerar
När du öppnar sidan visas ett formulär med flera kontroller. Formatet är förinställt på Nano ID. Du kan välja mellan 1 och 100 ID:n att generera åt gången via en räknare. Längden styrs med en slider som är förinställd på 21 och kan sättas mellan 2 och 36 tecken. Alfabetet är en redigerbar textruta som som standard innehåller URL‑säkra tecken – vanligtvis gemener a–z, versaler A–Z, siffrorna 0–9 samt tecknen _- (totalt 64 tecken, ungefär som Base64URL). Varje ändring av någon av dessa parametrar återskapar ID:n omedelbart, utan att du behöver klicka på någon ”generera”-knapp.
Under huven används webbläsarens inbyggda slumpgenerator, crypto.getRandomValues(), för att skapa varje tecken i ID:t. Det innebär att alla ID:n genereras lokalt – inget skickas till BroBroGo eller någon annan server. För den tekniskt intresserade: Varje tecken väljs genom att en slumpad byte (0–255) mappas till alfabetet med hjälp av en modulo- eller rejectionsmetod för att undvika bias. Om alfabetets storlek inte är en jämn divisor av 256, förkastas vissa bytevärden för att varje tecken ska ha exakt samma sannolikhet att väljas.
Vad som gör den annorlunda – jämfört med UUID och ULID
Den här generatorn är inte ännu en UUID-generator. Den adresserar ett specifikt behov: korta, men ändå kollisionsresistenta, identifierare som är enkla att använda i webbadresser, QR-koder eller databasnycklar. Med standardlängden 21 tecken och ett alfabet på 64 tecken är det totala antalet möjliga ID:n 64^21 ≈ 1,04 × 10^38. Det är jämförbart med UUIDs 2^122 ≈ 5,3 × 10^36. Samtidigt är Nano-ID 15 tecken kortare (om vi räknar UUID utan bindestreck).
Skillnaden blir ännu tydligare när du justerar längden. Vill du ha extremt korta ID:n kan du minska till exempelvis 12 tecken. Med samma URL‑säkra alfabet får du 64^12 ≈ 4,7 × 10^21 möjliga kombinationer – tillräckligt för de flesta applikationer. Vill du tvärtom maximera säkerheten kan du öka längden till 36 tecken. Varje ökning med en tecken multiplicerar antalet möjliga ID:n med alfabetets storlek.
Alfabetet kan också ändras. Kanske behöver du bara siffror (0–9) för en numerisk kod? Då minskar alfabetet till 10 tecken, och för att behålla samma kollisionsresistens måste du öka längden. Här är en tumregel: ju färre tecken i alfabetet, desto längre måste ID:t vara för att uppnå samma säkerhetsnivå. Generatorn låter dig experimentera i realtid.
Inställningar och utdata – detaljerat
Indata:
- Format: Nano ID (förvalt)
- Antal: Ett heltal mellan 1 och 100. Om du anger 0 eller 101 rättas det automatiskt till närmaste tillåtna värde.
- Längd: En slider från 2 till 36 steg. Standard är 21.
- Alfabet: En textruta med förvalda URL‑säkra tecken. Du kan radera och skriva valfria tecken, men de måste vara minst 2 olika tecken.
Utdata: När inställningarna är giltiga visas en lista med unika Nano ID:n. Varje ID är klickbart – ett klick kopierar det till urklipp. Ovanför listan syns en räknare: ”ID:n genererade: X”. Under listan finns en statusrad som växlar mellan ”Redo.” (idle), ”Genererade.” (efter generation) och ”Alla kopierade!” (efter att ha klickat på knappen ”Kopiera alla”). Knappen ”Kopiera alla” kopierar samtliga genererade ID:n som en kommaseparerad lista – användbart om du behöver mata in dem i en databas.
Edge case – enbokstavsalphabetet:
Om du ändrar alfabetet så att det bara innehåller en enda unik tecken (t.ex. bara ”A”), rensas resultatet omedelbart. ID‑räknaren visar 0, knappen ”Kopiera alla” är inaktiverad och statusraden visar felmeddelandet: ”Alfabetet måste innehålla minst 2 olika tecken.” Detta är logiskt: med bara ett tecken skulle alla ID:n bli identiska oavsett längd, till exempel AAAAAA.... Generatorn förhindrar meningslös utdata.
Vem behöver Nano ID och varför?
Nano ID används flitigt i webbapplikationer, API:er och distribuerade system. Här är några vanliga användningsfall:
- Korta webbadresser eller QR-koder: Varje extra tecken i en länk gör den svårare att skriva av eller skanna. Ett Nano-ID på 10–15 tecken är betydligt kortare än en UUID.
- Databasnycklar: I NoSQL-databaser som MongoDB är korta nycklar att föredra för att spara lagringsutrymme och öka indexprestanda. Nano-ID på 21 tecken är mindre än hälften av en UUID.
- Unika tokens för sessioner eller autentisering: Även om kryptografisk slump används, är Nano-ID tillräckligt långt för att vara ogissbart i praktiken.
- Högvolymsystem: Om du genererar miljarder ID:n per år blir teckenskillnaden avgörande för bandbredd och lagring.
Systemarkitekter uppskattar justeringen av alfabetet. Genom att utesluta tecken som 0O (siffra noll och versal O) eller l1 (gemen L och siffra ett) minskar risken för feltolkning när ID:n skrivs av för hand. Generatorn gör det enkelt att testa olika teckenuppsättningar.
Vanliga frågor och svar (FAQ)
Hur undviker kollisioner?
Nano ID använder en kryptografisk slumpgenerator. Sannolikheten för en kollision beror på längden och alfabetets storlek. För standardläget (21 tecken, 64 tecken i alfabetet) är den praktiskt taget försumbar. Du kan räkna ut risken med formeln (antalId^n)^2 / (2 * antalMöjliga), men för de flesta applikationer räcker 21 tecken gott.
Kan jag spara inställningarna? Nej, sidan sparar inte dina preferenser mellan sessioner. Varje gång du laddar om sidan återställs längd till 21, antal till 1 och alfabetet till standard. Det är en medveten enkelhet för att undvika oönskad tillstånd.
Varför måste alfabetet ha minst 2 tecken?
Om alfabetet bara har ett tecken, till exempel 'A', blir alla ID:n identiska oavsett längd. Det skulle ge AAAA... (21 A:n). Det är meningslöst och potentiellt förvirrande. Regeln är ett säkerhetsnät.
Genereras ID:n lokalt eller på servern?
Helt och hållet i din webbläsare med crypto.getRandomValues(). Ingen data skickas till någon server. Du kan till och med använda sidan offline efter första laddningen.
Kan jag få exakt samma ID två gånger? Teoretiskt ja, men praktiskt nej. Sannolikheten är så låg att det inte är värt att oroa sig för de flesta applikationer. Om du trots allt behöver garanterad unikhet (t.ex. i distribuerade system utan global koordination) kommer Nano-ID inte att räcka – då bör du överväga en sekventiell eller tidsbaserad metod.
Varför är standardlängden just 21? Det är en avvägning mellan korthet och kollisionsresistens. Med 21 tecken och 64 teckens alfabet får du ungefär samma informationsinnehåll som en UUID, men nästan hälften så långt. Utvecklaren av Nano ID (Andrey Sitnik) valde detta efter analys av vanliga användningsfall.
Sammanfattning av prestanda och säkerhet
Generatorn är omedelbar – varje ändring utförs på mindre än en millisekund även för 100 ID:n. Den använder webbstandarder som fungerar i alla moderna webbläsare (Chrome, Firefox, Safari, Edge). Eftersom inget data lämnar din dator finns det ingen risk för exponering över nätverket. Du kan med förtroende generera ID:n för känsliga tokens eller nycklar.
Att förstå hur man ställer in längd och alfabet är nyckeln till att få ut maximalt av verktyget. Vill du ha korta, läsbara ID:n för ett internt system? Prova 8 tecken och ett alfabet utan förvirrande tecken. Behöver du extra säkerhet för offentliga tokens? Öka till 32 tecken och behåll hela URL‑säkra alfabetet. Oavsett vilket, gör generatorn det lätt att finjustera och se resultatet omedelbart.