Hvað er Nano ID og hvað gerir þetta tól?
Nano ID er snið fyrir stutt, örugg og árekstrarþolin auðkenni sem er sértaklega hannað fyrir vefumhverfi. Sjálfgefin stafalengd er 21 stafur — styttri en UUID (36 stafir) og ULID (26 stafir) — en gefur samt sambærilega vörn gegn árekstrum (tvöföldun auðkenna). Tólið á þessari síðu framleiðir slík auðkenni alfarið í vafranum, með sterku handahófi úr crypto.getRandomValues. Engin gögn eru send til BroBroGo eða annars þjóns.
Það sem aðgreinir þetta tól frá mörgum öðrum er hversu nákvæmlega þú getur stillt alla þætti auðkennisins. Lengdinni er hægt að breyta milli 2 og 36 stafa með sleða sem sjálfgefið er stilltur á 21. Stafrófið, sem er sjálfgefið mengi vistvænna fyrir URL stafa, má breyta með því að skrifa beint í textasvæðið. Hver breyting á lengd, stafrófi eða fjölda endurskapar auðkennin samstundis — enginn „búa til“-hnappur, heldur vaktar tólið breytingar og framkvæmir nýja kynslóð.
Hægt er að framleiða á milli 1 og 100 auðkenni í einu. Eftir að hafa smellt á eitt auðkenni af listanum er það afritað á klippiborðið. „Afrita öll“-hnappurinn afritar allan listann.
Hvernig er þetta tól frábrugðið UUID og ULID?
UUID (einkum útgáfa 4) er forðast meðal annars vegna þess að það er alltaf 36 stafir að lengd, inniheldur bandstrik, og er ekki hægt að stilla hvorki lengd né stafróf. ULID er aðeins styttra (26 stafir) en hefur fasta lengd og notar eingöngu hástafi + tölustafi (32 stafa stafróf). Nano ID, aftur á móti, er sveigjanlegt:
- Lengd er stillanleg eftir þörfum. Fyrir mjög stutt auðkenni (t.d. 7 stafir) er hægt að minnka lengdina, en þá minnkar árekstrarþolið. Hægt er að auka lengd upp í 36 stafi til að fá öflugri vörn en UUID, en á minna plássi.
- Stafróf er alveg stillanlegt. Ef þú vilt aðeins tölustafi (0–9) eða forðast ákveðna stafi sem ruglast saman (t.d. O, 0, l, 1) er það mögulegt. Stafrófið verður þó að innihalda að minnsta kosti 2 mismunandi stafi, annars virkar tólið ekki.
- Staðbundin kynslóð — enginn þjónn fær að vita hvaða auðkenni voru búin til. Þetta er mikilvægt fyrir persónuvernd ef auðkennin verða notuð sem leynilyklar eða auðkenni í kerfum sem mega ekki leka í hönd óviðkomandi.
Til samanburðar:
| Snið | Sjálfgefin lengd | Stafróf (fjöldi stafa) | Stillingarmöguleikar |
|---|---|---|---|
| UUID v4 | 36 (32+4 bandstrik) | 16 tölustafir + 6 stafir (16-tugakerfi) | Engir |
| ULID | 26 | 32 stafir (hástafir + tölustafir án ILOU) | Engir |
| Nano ID (þetta tól) | 21 | 64 stafir (sjálfgefið, vistvænt fyrir URL) | Lengd 2–36, stafróf breytanlegt |
Sjálfgefin lengd Nano ID (21 stafur) veitir um 126 bita af umhverfi við sjálfgefið 64 stafa stafróf, sem er sambærilegt við UUID v4 (122 bitar) en á minna plássi. Með því að stytta lengdina í 10 stafi, til dæmis, fást aðeins um 60 bitar — nóg fyrir smærri kerfi en ekki fyrir stór gagnasöfn.
Stillingar og virkni – hvernig forðast má algengar villur
Tólið býður upp á fjórar stillingar:
- Format — valmynd þar sem Nano ID er valið. (Ef önnur snið eru á síðunni, þá er Nano ID eitt af þeim.)
- Count — fjöldi auðkenna, heiltala á bilinu 1 til 100.
- Length — sleði með gildi frá 2 til 36, sjálfgefið 21.
- Alphabet — textasvæði sem inniheldur sjálfgefið mengi stafa:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-. Þetta er 64 stafa mengi (10 tölustafir + 26 hástafir + 26 lágstafir +_og-), en það má breyta því að vild.
Mikilvæg mistök sem notendur gera reglulega:
- Stafróf með aðeins einum staf. Ef þú skrifar til dæmis bara „A“ í stafrófið, þá getur tólið ekki búið til mismunandi auðkenni. Tólið hreinsar þá niðurstöðurnar, fjöldinn verður 0, og „Afrita öll“-hnappurinn er óvirkur. Villuboðin „Stafrófið þarf að innihalda að minnsta kosti 2 mismunandi stafi“ birtast. Þetta er ekki villa heldur stærðfræðileg nauðsyn: án að minnsta kosti tveggja stafa geta allar mögulegar samsetningar verið eins.
- Lengd of stutt fyrir stafróf með fáa stafi. Ef stafrófið inniheldur aðeins tvo stafi (t.d. "AB") og lengdin er 2, geta aðeins 2² = 4 mismunandi auðkenni myndast. Fyrir 100 auðkenni er þá strax árekstur óumflýjanlegur. Tólið myndar einstök auðkenni með því að nota sterkt handahóf, en ef möguleikar eru færri en fjöldi sem óskað er eftir, munu endurtekningar koma fram. Til að forðast þetta skaltu annaðhvort auka lengd eða stafróf.
- Lengd undir 2. Sleðinn nær ekki niður fyrir 2, en ef þú reynir að stilla lengd handvirkt með kóða eða með því að klippa inn í sleðann, mun tólið henda gildinu í lágmarkið. 2 er lágmarkið, en þá verða auðkennin mjög létt (aðeins 2 stafir) og árekstrarþol nánast ekkert nema stafrófið sé stórt.
Hvernig á að velja rétta lengd og stafróf:
- Fyrir veflykla sem þurfa að vera stuttir en ekki leyndir (t.d. auðkenni í vefslóðum): Notaðu sjálfgefna lengd 21 og sjálfgefið stafróf. Það er jafnvægi á milli styttri og öryggis.
- Fyrir leynilykla eða auðkenni sem mega ekki rata í vitlausar hendur: Aukið lengdina upp í 30–36, eða bætið við sérstökum stöfum í stafrófið (þó sjálfgefið mengi sé þegar mjög gott).
- Fyrir mjög stutt auðkenni (t.d. 7 stafir fyrir QR kóða): Veldu stafróf með mörgum stöfum (t.d. 64 stafir) til að fá sem mesta möguleikafjölda. Fyrir 7 stafi og 64 stafa stafróf eru um 64⁷ ≈ 4,4 × 10¹² möguleikar, sem dugar fyrir mörg tilvik en ekki stór gagnasöfn.
Umhirða staðbundinna kynslóðar og öryggi
Vafrinn notar crypto.getRandomValues til að búa til handahófskenndar tölur. Þetta er sterkt, dulkóðunarfræðilega handahófskennt og byggir á vélbúnaði (þar sem hann er tiltækur). Ekkert af eftirfarandi á sér stað:
- Engin beiðni er send á BroBroGo eða neinn annan ytri þjón.
- Enginn vefþjónn fær afrit af auðkennunum.
- Engar kökur eða staðsetningarupplýsingar eru notaðar.
Þetta þýðir að þú getur búið til auðkenni fyrir viðkvæm kerfi, jafnvel án nettengingar (ef síðan er hlaðin einu sinni). Öryggisáhættan er því eingöngu bundin við þann tæki og vafra sem keyrir kóðann.
Hvað með árekstra? Þar sem auðkennin eru framleidd með sterku handahófi er árekstrarþolið háð tveimur breytum: lengd L og fjölda stafa í stafrófinu A. Fjöldi mögulegra einstakra auðkenna er A^L. Til dæmis, með sjálfgefinni stillingu (L=21, A=64) eru 64²¹ möguleikar, sem er um 1,3 × 10³⁸ — margfalt fleiri en fjöldi atóma í alheiminum. Fyrir hagnýt kerfi (jafnvel þó að framleidd séu milljarðar auðkenna) er árekstrarhættan nánast engin, að því gefnu að handahófið sé sótt úr góðri uppsprettu.
Notkunardæmi fyrir forritara
Nano ID er notað víða í nútíma vefþróun:
- Auðkenni í vefslóðum: Stutt auðkenni eins og
https://example.com/item/Ab3xYz9er auðveldara að slá inn, deila og muna en heil UUID-slóð. - Gagnagrunnslyklar: Fyrir NoSQL-gagnagrunna eins og MongoDB geta Nano ID verið styttri en
ObjectId(24 stafir) og þarfnast ekki sérstakrar útgáfu. - Kóðar fyrir QR-merkingar: Því færri stafir, því einfaldari QR-kóði og hraðari lestur. 10 stafa Nano ID með 64 stafa stafrófi gefur 60 bita af umhverfi, nóg fyrir milljónir auðkenna.
- Einstakir auðkenni fyrir biðlarakóða: Í React eða Vue geturðu notað Nano ID sem
keyfyrir lista, eða semidfyrir HTML-element til að forðast árekstra við fleiri en eitt eintak af sama íhlut. - Leynilyklar fyrir API: Ef nauðsyn krefur, er hægt að auka lengdina í 36 til að ná meiri styrk en UUID, á minna plássi.
Algengar spurningar (FAQ)
Af hverju er sjálfgefin lengd 21 stafur? Sjálfgefin lengd var valin til að veita sambærilega árekstrarvörn og UUID (122 bitar) á aðeins 21 staf, sem er 42% styttri. Höfundar Nano ID reiknuðu út að 21 stafur með 64 stafa stafróf gefi um 126 bita, sem er örlítið meiri en UUID en á minna rými.
Get ég notað aðeins tölustafi?
Já, þú getur skrifað 0123456789 í stafrófið. Þá verða auðkennin eingöngu tölustafir. Hins vegar minnkar möguleikafjöldinn mikið (aðeins 10 stafir), svo þú gætir þurft að auka lengd til að viðhalda árekstrarþoli.
Hvað gerist ef ég set eitt staf í stafrófið? Stafrófið verður að innihalda að minnsta kosti 2 mismunandi stafi. Annars hreinsar tólið niðurstöðurnar, fjöldinn verður 0, og „Afrita öll“-hnappurinn er óvirkur. Villuboðin „Stafrófið þarf að innihalda að minnsta kosti 2 mismunandi stafi“ birtast.
Er óhætt að nota Nano ID sem aðalauðkenni í gagnagrunni? Já, en vertu viss um að stilla lengd og stafróf þannig að möguleikafjöldinn sé nógu mikill fyrir væntanleg fjölda auðkenna. Fyrir stór kerfi (milljarða færslna) er 21 stafur með 64 stafa stafrófi meira en nóg. En ef kerfið þitt verður að nota einkvæmni án nokkurrar endurtekningar (ekki bara handahófskennt), þá er betra að nota raðauðkenni eða UUID með tímanúmerum.
Hvernig er handahófið framkallað?
Vafrinn notar crypto.getRandomValues, sem byggir á kerfislægum handahófsrafall stýrikerfisins. Í flestum nútíma vöfrum (Chrome, Firefox, Safari, Edge) er þetta sterkt, dulkóðunarfræðilega öruggt handahóf. Það er nákvæmlega sama aðferð og notuð er til að búa til dulkóðunarlykla.
Get ég afritað öll auðkennin í einu? Já, smelltu á „Afrita öll“-hnappinn. Eftir að hafa gert það birtast villuboðin „Öllu afritað!“. Hvert og eitt auðkenni er einnig afritað ef þú smellur á það beint.