Ի՞նչ է անում այս էջը
Այս էջը թույլ է տալիս ստեղծել եզակի նույնականացուցիչներ (IDs) Nano ID ձևաչափով։ Դուք նշում եք ցանկալի երկարությունը և թույլատրվող նիշերի բազմությունը, իսկ գործիքը արտադրում է մեկ կամ մի քանի կոմպակտ, URL-անվտանգ և բախումադիմացկուն ID: Գործիքն աշխատում է ամբողջությամբ բրաուզերում՝ օգտագործելով ուժեղ crypto.getRandomValues ֆունկցիան, և ոչ մի տվյալ չի ուղարկվում BroBroGo սերվերին։
Ինչո՞վ է այս էջը տարբերվում
Nano ID-ն ի սկզբանե նախագծվել է որպես UUID-ի ավելի կարճ ու ճկուն այլընտրանք։ UUID-ի ֆիքսված երկարությունը 36 նիշ է (օրինակ՝ 550e8400-e29b-41d4-a716-446655440000), իսկ Nano ID-ի լռելյայն երկարությունը 21 նիշ է։ 21 նիշը բավարար է համարժեք բախումադիմացկունություն ապահովելու համար՝ զգալիորեն կրճատելով պահեստավորման և փոխանցման ծավալը։
Այս գործիքի առանձնահատկությունն այն է, որ երկարությունն ու այբուբենը լիովին կարգավորելի են։ Դուք կարող եք սահմանել երկարությունը 2-ից 36 նիշ, իսկ այբուբենը խմբագրել՝ թողնելով միայն թվեր, կամ հեռացնելով շփոթեցնող նիշերը (օրինակ՝ 1, l, I): Ցանկացած պարամետրի փոփոխություն անմիջապես վերագեներացնում է ID-ները, առանց լրացուցիչ սեղմումների։
Համեմատության համար.
- UUID v4 – 36 նիշ, 122 բիթ պատահականություն, ֆիքսված ձևաչափ:
- ULID – 26 նիշ, մեծատառեր, ժամանակային կարգավորում:
- Nano ID (լռելյայն) – 21 նիշ, URL-անվտանգ այբուբեն, կարգավորելի:
| Ձևաչափ | Լռելյայն երկարություն | Այբուբենի ճկունություն | Բախման հավանականություն (1 մլրդ ID-ից) |
|---|---|---|---|
| UUID v4 | 36 | Ոչ | ~0 |
| ULID | 26 | Ոչ (միայն մեծատառեր) | Շատ ցածր |
| Nano ID | 21 | Այո | Շատ ցածր (կախված երկարությունից) |
Ինչպես են աշխատում մուտքային պարամետրերը
Ձևաչափ
Ընտրության դաշտում կարող եք ընտրել Nano ID (միակ տարբերակն այս էջում)։ Ապագայում կարող են ավելացվել այլ ձևաչափեր, սակայն ներկայումս այս էջն աշխատում է միայն Nano ID-ով:
Քանակ
Դուք կարող եք ստեղծել 1-ից 100 ID միանգամից։ Յուրաքանչյուր ID եզակի է ստեղծված խմբի ներսում (բայց հնարավոր է կրկնություն տարբեր սերունդների միջև, եթե երկարությունը շատ կարճ է):
Երկարություն
Լռելյայն 21 նիշը ընտրված է, քանի որ այն ապահովում է մոտավորապես (64^21) հնարավոր համակցություն (այբուբենը 64 նիշ է), ինչը գործնականում բավարար է միլիոնավոր ID-ների համար՝ առանց բախման վտանգի։ Սահիչը թույլ է տալիս իջեցնել մինչև 2 (կարճ, բայց բարձր բախումային ռիսկով) կամ բարձրացնել մինչև 36 (գրեթե UUID-ի երկարություն):
Այբուբեն
Լռելյայն այբուբենը պարունակում է 64 URL-անվտանգ նիշ՝ 0-9 A-Z a-z առանց խնդրահարույց նիշերի (ինչպես +, /): Դաշտը խմբագրելի է: Կարևոր սահմանափակում․ այբուբենը պետք է պարունակի առնվազն 2 տարբեր նիշ: Եթե այն կրճատեք մինչև մեկ նիշ (օրինակ՝ միայն a), արդյունքները կմաքրվեն, ID-ների քանակը կդառնա 0, և «Copy all» կոճակը կանջատվի: Սա տրամաբանական է, քանի որ միանիշ այբուբենով հնարավոր չէ ստեղծել տարբեր ID-ներ (բացի նույն նիշերի կրկնությունից):
Երբ փոխում եք երկարությունը, այբուբենը կամ քանակը, ID-ները վերագեներացվում են ավտոմատ: Ստատուսի տողում ցուցադրվում է «Ready.» (սպասման ռեժիմ), «Generated.» (ստեղծումից հետո), «Copied all!» (բոլոր ID-ները պատճենելուց հետո) և սխալի հաղորդագրություն «Alphabet needs at least 2 different characters.»:
Եզրային դեպքեր և տրամաբանություն
Գործիքը մշակելիս հաշվի են առնվել մի քանի կարևոր եզրային դեպքեր.
- Անվավեր այբուբեն – եթե այբուբենը պարունակում է միայն մեկ կրկնվող նիշ, ID-ներ ստեղծելն անհնար է, ուստի ցուցակը մաքրվում է, իսկ կոճակն անջատվում: Սա կանխում է անիմաստ արդյունքների ցուցադրումը:
- Կրկնություն – գործիքը երաշխավորում է, որ նույն խմբի ներսում ID-ները չկրկնվեն (եթե երկարությունն ու այբուբենը թույլ են տալիս): Սակայն եթե դուք փոխեք երկարությունը 2-ի և այբուբենը թողնեք 64 նիշ, հնարավոր է բախում, քանի որ հնարավոր համակցությունները ընդամենը 4096 են, իսկ քանակը կարող է լինել 100: Այդ դեպքում գործիքը կստեղծի միայն եզակի ID-ներ մինչև 4096-ը, իսկ 100-ից ավելի հնարավոր չէ (քանակի սահմանը 100 է):
- Մեծ քանակ – 100 ID-ների ստեղծումը 21 նիշ երկարությամբ տեղի է ունենում ակնթարթորեն, քանի որ բոլոր գործողությունները կատարվում են տեղային:
- Պատճենում – կտտացնելով առանձին ID-ի վրա՝ այն պատճենվում է clipboard: «Copy all» կոճակը պատճենում է ամբողջ ցուցակը (մեկ ID մեկ տողում): Ստատուսը փոխվում է «Copied all!»:
Ո՞ւմ է պետք այս գործիքը
Nano ID-ի գեներատորը հատկապես օգտակար է.
- Վեբ ծրագրավորողներին – ովքեր պետք է ստեղծեն կարճ, URL-անվտանգ ID-ներ API-ների, QR կոդերի կամ տվյալների բազայի բանալիների համար:
- Համակարգերի ճարտարապետներին – ովքեր ցանկանում են հարմարեցնել ID-ի երկարությունը և նիշերի բազմությունը՝ խիստ ձևաչափի սահմանափակումներին համապատասխանելու համար:
- Գաղտնիություն պահանջող օգտատերերին – ովքեր չեն ցանկանում, որ ID-ները ստեղծվեն սերվերում կամ փոխանցվեն ցանցով:
- Բարձր ծանրաբեռնվածությամբ համակարգերին – որտեղ ավելի կարճ ID-ները նվազեցնում են պահեստավորման և փոխանցման ծախսերը:
21 նիշանոց Nano ID-ն մոտավորապես 42% -ով կարճ է UUID-ից (36 նիշ): Եթե օրական ստեղծվում է 1 միլիոն ID, ապա 15 նիշ խնայողությունը յուրաքանչյուր ID-ի համար կարող է զգալիորեն նվազեցնել տվյալների բազայի չափը:
Ինչպես ընտրել երկարությունը և այբուբենը
Երկարության և այբուբենի ընտրությունը կախված է ձեր պահանջներից:
- Բախման հավանականություն – որքան մեծ է այբուբենը և երկարությունը, այնքան փոքր է բախման հավանականությունը: Օրինակ, 64 նիշանոց այբուբենով 21 նիշ երկարությամբ ID-ի հնարավոր համակցությունների թիվը
64^21 ≈ 1.3 × 10^38է: 12 նիշ երկարությամբ64^12 ≈ 4.7 × 10^21– դեռ բավական է շատ դեպքերի համար: - URL-անվտանգություն – լռելյայն այբուբենն արդեն URL-անվտանգ է: Եթե ցանկանում եք հեռացնել մեծատառերը (օրինակ՝ գործերի անտեսման համար), կարող եք թողնել միայն փոքրատառեր և թվեր:
- Մարդու ընթեռնելիություն – հաճախ հեռացնում են շփոթեցնող նիշերը՝
0,O,1,l,I: Դուք կարող եք խմբագրել այբուբենը՝ թողնելով միայն23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz: - Պահեստավորման սահմանափակումներ – եթե ID-ն պահվում է ամբողջ թվով սյունակում (integer), ապա Nano ID-ն պիտանի չէ, անհրաժեշտ է տողային տիպ: Սակայն 21 նիշանոց տողն ավելի քիչ տեղ է զբաղեցնում, քան 36 նիշանոց UUID-ն:
Հաճախ տրվող հարցեր
1. Ինչո՞ւ Nano ID-ի լռելյայն երկարությունը 21 նիշ է, այլ ոչ թե 16 կամ 32: 21 նիշը ընտրվել է, քանի որ 64 նիշանոց այբուբենով այն ապահովում է 122 բիթ պատահականություն (ինչպես UUID v4), բայց ավելի կարճ է: 21 × log2(64) = 21 × 6 = 126 բիթ, ինչը գերազանցում է UUID-ի 122 բիթը:
2. Կարո՞ղ եմ ստեղծել ID միայն թվերից:
Այո, այբուբենի դաշտում գրեք 0123456789 (10 նիշ): Երկարությունը կարգավորեք ըստ ցանկության: Հիշեք, որ 10 նիշանոց այբուբենով 21 նիշանոց ID-ն ունի 10^21 համակցություն, ինչը դեռ շատ մեծ է:
3. Ի՞նչ տեղի կունենա, եթե այբուբենում կրկնվող նիշ լինի: Կրկնվող նիշերը գործիքը կհամարի որպես մեկ նիշ, քանի որ դրանք չեն ավելացնում բազմազանությունը: Օրինակ, «aabc»-ն կհամարվի երեք տարբեր նիշ: Եթե կրկնություններից հետո մնա միայն մեկ տարբեր նիշ, կցուցադրվի սխալ:
4. Հնարավո՞ր է արդյոք ID-ները կանխատեսել:
Ոչ, քանի որ գործիքն օգտագործում է crypto.getRandomValues՝ բրաուզերի ապահով պատահական թվերի գեներատորը: Սա ապահովում է կրիպտոգրաֆիկորեն ուժեղ պատահականություն, ինչը ID-ները դարձնում է անկանխատեսելի:
5. Ինչպե՞ս պատճենել միայն մեկ ID: Կտտացրեք ցանկալի ID-ի վրա, այն կպատճենվի clipboard: «Copy all» կոճակը պատճենում է բոլոր ID-ները՝ մեկական տողում:
6. Կարո՞ղ եմ օգտագործել այս ID-ները որպես տվյալների բազայի առաջնային բանալի: Այո, բայց համոզվեք, որ երկարությունը և այբուբենը բավարար են եզակիություն ապահովելու համար: Nano ID-ն տողային է, ուստի տվյալների բազայում պետք է օգտագործել VARCHAR կամ CHAR տիպ: