← Բոլոր գործիքները

UUID գեներատոր (v4 GUID)

Ստեղծեք պատահական v4 UUID-ներ (GUID) ակնթարթորեն ձեր բրաուզերում։ Իմացեք, թե ինչ է 128-բիթանոց UUID-ը, ինչպես են տարբերվում տարբերակները և երբ դրանք օգտագործել։

Ինչ է իրականում UUID-ը

UUID-ը, Universally Unique Identifier-ի կրճատումը, 128-բիթանոց արժեք է, որն օգտագործվում է ինչ-որ բան պիտակավորելու համար՝ առանց նախապես որևէ մեկից թույլտվություն խնդրելու։ Կարող եք հանդիպել նաև GUID անվանման՝ Globally Unique Identifier, որը պարզապես Microsoft-ի կողմից տրված անուն է նույն գաղափարին՝ Windows-ի և .NET աշխարհում։ Երկու տերմիններն էլ նկարագրում են գրեթե միշտ նույն 128-բիթանոց թիվը, ուստի երբ գործընկերն ասում է GUID, իսկ դուք ասում եք UUID, գրեթե միշտ խոսք է գնում ճշգրիտ նույն բանի մասին։

Այս 128 բիթերը սովորաբար գրվում են որպես 32 տասնվեցական նիշ, բաժանված գծիկներով հինգ խմբի, 8-4-4-4-12 օրինաչափությամբ։ Բնորոշ արժեքը այսպիսին է՝ 123e4567-e89b-12d3-a456-426614174000։ Գծիկներն ինքնին ոչ մի իմաստ չեն կրում, դրանք գոյություն ունեն մաքուր այն նպատակով, որ մարդը կարողանա կարդալ արժեքը՝ չկորցնելով տեղը։ Յուրաքանչյուր նիշ 0-ից f միջակայքի տասնվեցական թիվ է, հենց դրա համար է UUID-ը զգացվում ավելի խիտ, քան առօրյա թիվը, թեև, ըստ էության, դա մեկ շատ մեծ ամբողջ թիվ է։

Աբստրակտ, փայլող տասնվեցական տոկեն, որը ներկայացնում է եզակի 128-բիթանոց նույնացուցիչ մուգ մանուշակագույն ֆոնի վրա
UUID-ը մեկ 128-բիթանոց թիվ է, գրված որպես 32 տասնվեցական նիշ՝ հինգ խմբում, գծիկներով բաժանված։

Տարբերակները, և ինչու է v4-ը հաղթում

Ստանդարտը սահմանում է մի քանի տարբերակ, և դրանք տարբերվում են նրանով, թե ինչպես են բիթերը լցվում։ Տարբերակ 1-ը ժամանակի վրա հիմնված է. այն շաղկապում է ընթացիկ ժամանակադրոշմը և սարքի ցանցային MAC հասցեն։ Սա v1 արժեքները դարձնում է դասավորելի ըստ ստեղծման ժամանակի, բայց նաև արտահոսում է տեղեկություն, թե որտեղ և մոտավորապես երբ են ստեղծվել, ինչը ոչ միշտ ցանկալի է։ Տարբերակ 3-ը և 5-ը անվան վրա հիմնված են, հեշավորելով անվանատարածք և անուն, այնպես որ նույն մուտքագրումը միշտ տալիս է նույն նույնացուցիչը։

Տարբերակ 4-ը ամբողջովին այլ ուղի է ընտրում։ Այն գրեթե մաքուր պատահականություն է։ 128 բիթից վեցը վերապահված են տարբերակն ու տարբերակի ձևը նշելու համար, մնացած 122-ը լցվում են պատահական տվյալով։ Չկա ժամանակադրոշմ, չկա MAC հասցե, չկա անվանատարածք, միայն աղմուկ։ Հենց դրա համար են գեներատորների մեծ մասը, ներառյալ սա, ստեղծում v4 կանխադրված։ Այն ոչինչ չի բացահայտում սարքի կամ ստեղծման պահի մասին, և չի պահանջում կողմերի միջև ոչ մի համաձայնեցում։ Այս էջի գործիքն ամբողջությամբ աշխատում է ձեր բրաուզերում, ուստի պատահական արժեքները երբեք չեն հեռանում ձեր սարքից։

Որքան իրականում քիչ հավանական է բախումը

Ողջամիտ մտահոգությունն այն է, որ երկու պատահական UUID-ներ ինչ-որ օր կարող են նույնանալ։ 122 պատահական բիթի դեպքում հնարավոր v4 արժեքների տարածքը 2-ը 122-րդ աստիճանում է, ինչը մոտավորապես 5.3-ն է՝ 36 զրոներով։ Մարդկային լեզվով ասած՝ ձեզ պետք է միլիարդավոր UUID ստեղծել ամեն վայրկյան, տասնամյակների ընթացքում, մինչև մեկ կրկնության հավանականությունը հասնի ինչ-որ չափելի բանի։ Ինքը ստանդարտը կրկնության հավանականությունը նկարագրում է որպես բավականաչափ մոտ զրոյին, որպեսզի համարվի աննշան։ Գործնականում թիմերը v4-ը վերաբերվում են որպես եզակի և առաջ են գնում, և իրավացիորեն։

Անհամար, տարբեր, փայլող բանալիներ, լողացող հսկայական մուգ տարածքում առանց կրկնության, կապույտ-ոսկեգույն ընդգծումներով
Հնարավոր v4 արժեքների պուլն այնքան հսկայական է, որ բախումները գործնականում անհնարին են։

Որտեղ են ծրագրավորողները դիմում դրանց

Քանի որ եզակիությունը չի պահանջում կենտրոնական իշխանություն, UUID-ները փայլուն են այնտեղ, որտեղ համաձայնեցումը թանկ է կամ անհնարին։ Դրանք բնական ընտրություն են տվյալների բազայի առաջնային բանալիների համար, հատկապես երբ մի քանի ծառայություն միաժամանակ մուտքագրում է տողեր, և չեք կարող ընդհատվել, որպեսզի հարցնեք ընդհանուր հաշվիչին հաջորդ թիվը։ Բաշխված համակարգերում մոլորակի հակառակ ծայրերում գտնվող երկու հանգույցներն էլ կարող են միևնույն պահին ստեղծել նույնացուցիչներ՝ երբեք չբախվելով։ Դրանք նաև սնուցում են API idempotency բանալիներ, որտեղ հաճախորդը հարցումին կցում է UUID, որպեսզի սերվերը կարողանա անվտանգ անտեսել կրկնությունը, եթե ցանցը կրկնում է հարցումը։ Սեսիայի տոկեններ, ֆայլերի անուններ, միջոցառումների ID-ներ և հաղորդագրության բանալիներ, բոլորն էլ ապավինում են նույն հատկությանը։

UUID-ը ընդդեմ ավտոինկրեմենտ ID-ների

Դասական այլընտրանքն ավտոինկրեմենտ ամբողջ թիվն է՝ 1, 2, 3 և այդպես շարունակ։ Հաջորդական ID-ները կոմպակտ են, բնականորեն դասավորվում են և հեշտ են կարդալ, բայց ունեն իրական թերություններ։ Դրանք բացահայտում են, թե քանի գրառում կա, և թույլ են տալիս կողմնակի անձանց գուշակել հարևան արժեքները, և ստիպում են յուրաքանչյուր մուտքագրումն անցնել մեկ հաշվիչի միջով, ինչը դառնում է խցան, երբ բաժանում եք տվյալների բազան կամ միավորում եք տվյալներ բազմաթիվ աղբյուրներից։ UUID-ները լուծում են այս խնդիրները՝ թույլ տալով ցանկացած կողմի ինքնուրույն ստեղծել բանալի և ոչինչ չբացահայտելով ծավալի կամ կարգի մասին։ Փոխզիջումը չափն է և ինդեքսներում մի փոքր ավելի քիչ լոկալություն։ Համակարգերի համար, որոնք մասշտաբավորվում են դուրս կամ պետք է թաքցնեն իրենց ներքին կառուցվածքը, այս փոխզիջումը սովորաբար արժե անել։ Կարող եք ուսումնասիրել այս և նմանատիպ գործիքներ մեր բոլոր գեներատորների ընտրանու միջոցով, կամ դիտել ծրագրավորողի գործիքների ավելի լայն շարքը՝ հարակից բլոկների համար։

Հաճախ տրվող հարցեր

GUID-ը նույնն է, ինչ UUID-ը

Առօրյա նպատակների համար՝ այո։ GUID-ը Microsoft-ի անունն է նույն 128-բիթանոց նույնացուցչի համար։ Միակ իրական տարբերությունը որոշ Windows համակարգերում հում բինար ձևի բայթերի հերթականությունն է. տողային ձևով դրանք նույնական են և փոխանակելի։

UUID-ի ո՞ր տարբերակն է ստեղծում այս գործիքը

Այն ստեղծում է տարբերակ 4-ը՝ պատահական տարբերակը։ Իր 128 բիթից 122-ը լցված են պատահական տվյալով, ինչը յուրաքանչյուր արժեք դարձնում է չափազանց քիչ հավանական կրկնվող, և նշանակում է, որ այն ոչ մի ժամանակադրոշմ կամ սարքի տեղեկություն չի կրում։

Կարո՞ղ են երկու UUID երբևէ նույնանալ

Տեսականորեն հավանականությունը ճշգրիտ զրո չէ, բայց մոտավորապես 5.3 անգամ 10-ի 36-րդ աստիճանում հնարավոր v4 արժեքների դեպքում այն այնքան փոքր է, որ համարվում է աննշան։ Ձեզ պետք է ստեղծել աստղագիտական քանակությամբ դրանք, մինչև բախումը հավանական դառնա։

Ինչու՞ օգտագործել UUID ավտոինկրեմենտ թվի փոխարեն

UUID-ները կարող են ինքնուրույն ստեղծվել ցանկացած ծառայության կողմից՝ առանց ընդհանուր հաշվիչի, դրանք չեն բացահայտում գրառումների քանակը կամ կարգը, և հեշտացնում են բազմաթիվ աղբյուրներից տվյալների միավորումը։ Ավտոինկրեմենտ ID-ներն ավելի փոքր են, բայց մասշտաբում դառնում են խցան և արտահոսեցնում տեղեկություն։

UUID-ները ստեղծվու՞մ են սերվերի վրա

Ոչ։ Այս գործիքն ամբողջությամբ աշխատում է ձեր բրաուզերում, ուստի պատահական արժեքները ստեղծվում են լոկալ և երբեք ոչ մի տեղ չեն ուղարկվում։ Սա այն անվտանգ է դարձնում օգտագործել բանալիների և տոկենների համար, որոնք ցանկանում եք պահել գաղտնի։

Ի՞նչ է նշանակում գծիկների օրինաչափությունը

8-4-4-4-12 խմբավորումը պարզապես ընթեռնելիության պայմանականություն է։ Գծիկները ոչ մի տվյալ չեն կրում, դրանք 32 տասնվեցական նիշը բաժանում են բլոկների, որպեսզի մարդիկ ավելի հեշտությամբ կարողանան զննել և համեմատել արժեքները։