Generátor UUID

Pridať na stránku Metainformácie

Iné nástroje

Vygenerovať UUID/GUID

Vygenerovať UUID/GUID

Univerzálny jedinečný identifikátor (UUID), známy aj ako globálne jedinečný identifikátor (GUID), je široko používaný v počítačových systémoch.

Je to 128-bitový kód, ktorý generuje systém na základe premenných a konštánt: aktuálny čas, MAC adresa, SHA-1 hash, MD5 namespace. Konečný výsledok generovania UUID, zobrazený ako 32-miestny alfanumerický kód oddelený pomlčkami, sa môže zdať ľubovoľný, ale v skutočnosti je výsledkom zložitých výpočtov. Počítač teda „nevynájde“ kód, ale vytvorí ho zo špecifických technických veličín, ktoré sú relevantné v danom čase.

Pravdepodobnosť, že sa rovnaký UUID vygeneruje na dvoch rôznych počítačoch v rôznom čase, má tendenciu k nule, čo umožňuje použiť výsledné kódy na identifikáciu bodov/lokálnych údajov bez odkazu na koordinačné centrum. Dnes je UUID/GUID všadeprítomný v online aj offline sieťach a efektívne funguje nielen v globálnom internetovom priestore, ale aj v samostatných počítačových systémoch.

História UUID

128-bitové kódy UUID prvýkrát použila americká spoločnosť Apollo Computer v 80. rokoch. Boli založené na jednoduchších 64-bitových kódoch používaných v Domain/OS a našli široké využitie vo výpočtovom prostredí Open Software Foundation.

S príchodom prvých platforiem Windows bol globálne jedinečný identifikátor zovšeobecnený a štandardizovaný. Microsoft prevzal dizajn DCE od Apollo Computer a zaregistroval menný priestor URN v RFC 4122. V roku 2005 bol tento nový štandard navrhnutý IETF ako nový štandard a UUID bol štandardizovaný v rámci ITU.

Začiatkom roku 2002 boli zistené problémy s výkonom systému pri používaní UUID ako primárnych kľúčov v lokálnych databázach. Tieto boli opravené vo verzii 4 pridaním nenáhodnej prípony na základe systémového času počítača. Takzvaný prístup COMB (Combined GUID Time Identifier) ​​zvýšil riziká duplikácie kódu, no zároveň výrazne zlepšil výkon pri práci s Microsoft SQL Server.

S rozvojom IT technológií prestal byť univerzálny jedinečný identifikátor vysoko špecializovaným technickým nástrojom a dnes ho môže používať každý. Pravdepodobnosť opakovania vygenerovaných kódov nie je rovná nule, ale má tendenciu k nej a môžu byť pomocou nich identifikované akékoľvek digitálne informácie, potom môžu byť spojené do jednotlivých dátových polí s minimálnym rizikom opakovania.

Výhody UUID

Generátory globálnych jedinečných kódov nevyžadujú centralizované porovnávanie/synchronizáciu údajov a sú voľne dostupné všetkým používateľom. Medzi hlavné výhody UUID patria:

  • Minimálne riziko „zrážky“ (opakovania) kódov. Napriek ich masívnemu používaniu má pravdepodobnosť opakovania tendenciu k nule.
  • Možnosť spájať rôzne polia údajov pomocou UUID ako primárnych (jedinečných) kľúčov.
  • Zjednodušená distribúcia údajov na viacerých rozptýlených serveroch.
  • Možnosť generovať kódy offline.

Jedinečné identifikačné kódy napísané vo formáte xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx umožňujú rozptýleným systémom rozpoznať informácie bez koordinácie z jedného dátového centra: s takmer nulovou pravdepodobnosťou chýb/opakovaní. Táto funkcia spolu s jednoduchosťou používania a malými požiadavkami na výkon počítača robí UUID žiadaným a nevyhnutným v širokej škále odvetví IT a autonómnych počítačových systémov.

Univerzálne jedinečný identifikátor

Univerzálne jedinečný identifikátor

UUID môže generovať kódy pomocou rôznych algoritmov a premenných/konštantných hodnôt.

Celkovo existuje 5 verzií identifikátora, ktoré používajú systémový dátum/čas a MAC adresy, bezpečnostné protokoly DCE, MD5 hash, SHA-1 hash a menný priestor pri vygenerovaní.

Vo všetkých prípadoch sa konečný výsledok zobrazí vo formáte xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (číslo v šestnástkovej sústave pozostávajúce z malých latinských písmen a číslic a rozdelené spojovníkmi do piatich blokov: 8-4 -4-4- 12), M znamená verziu, N znamená variant UUID.

Systém teda používa 36 znakov naraz (26 písmen a 10 číslic), takže pravdepodobnosť opakovania 32-miestneho kódu má tendenciu k nule, napriek tomu, že ich denne generujú milióny používateľov na celom svete.

Verzie UUID

Verzia 1

Prvá verzia jedinečného identifikátora je pri generovaní kódu založená na MAC adrese počítača a jeho systémovom čase, ktorý mení svoju číselnú hodnotu 1-krát za sekundu. Proces generovania pozostáva z piatich fáz:

  • Spodných 32 bitov informácií sa preberá zo značky UTC. Sú prevedené na 8 hexadecimálnych znakov a zaberajú 4 bajty.
  • Priemerne 16 bitov informácií je prevzatých z rovnakého označenia UTC a konvertovaných na 4 hexadecimálne znaky zaberajúce 2 bajty.
  • Zoberie sa horných 12 bitov informácií zo značky UTC a skonvertuje sa na ďalšie 4 hexadecimálne znaky.
  • Ďalšie 1-3 bity pripadajú na sekvenciu hodín a znižujú riziko kolízií zavedením určitého stupňa náhodnosti/neistoty. Systémový čas sa buď podmienečne spomalí alebo nastaví späť – aby sa dva alebo viac identifikátorov pracujúcich na tom istom počítači „nekrížili“.
  • Zostávajúcich 6 bajtov je konštantná hodnota vygenerovaná na základe adresy MAC zariadenia. Pozostáva z 12 hexadecimálnych znakov a má veľkosť 48 bitov.

Pretože algoritmus prvej verzie UUID je neoddeliteľne spojený so systémovým časom, použitie sekvencie hodín je povinné. V opačnom prípade sa riziko generovania rovnakých kódov mnohonásobne zvýši – počas sekundy, keď systémový čas „zamrzne“ na tej či onej hodnote.

Verzia 2

Druhá verzia sa minimálne líši od prvej a v praxi sa používa len zriedka. Namiesto sekvencie hodín používa systémový identifikátor viazaný na používateľské údaje alebo iné jedinečné hodnoty, ktoré sa na iných počítačoch neopakujú alebo sa opakujú veľmi zriedka. Vplyv náhodnosti v druhej verzii je minimalizovaný a možno ju použiť na zlepšenie bezpečnosti distribuovaného výpočtového prostredia.

Verzie 3 a 5

Majú veľa spoločného: na vytváranie kódov používajú jedinečné názvy a názvy (z priestoru MD5), teda nenáhodné hodnoty. Iba verzia 3 používa štandardný hash, zatiaľ čo verzia 5 používa hash SHA-1. Takéto identifikátory sú menej závislé od náhodných premenných.

Verzia 4

Generovanie tejto verzie UUID je z viac ako 90 % náhodné. Má 6 bitov pre konštantné hodnoty a 122 pre ľubovoľné. Implementácia algoritmu spočíva v tom, že 128 bitov informácií sa najskôr vygeneruje náhodne a 6 z nich sa nahradí údajmi o verzii a variante.

Úloha generátora pseudonáhodných čísel vo štvrtej verzii je maximálna a ak má príliš jednoduchý algoritmus, výrazne sa zvyšuje riziko opakovaní/kolízií. Napriek tomu je to štvrtá verzia, ktorá je zďaleka najbežnejšia a najčastejšie používaná v praxi.

Možnosti UUID

Jedinečné UUID bolo s vývojom počítačovej technológie niekoľkokrát vylepšené a dnes je prezentované v niekoľkých verziách.

Možnosť 0

Navrhnuté na prácu so staršími databázami formátu Apollo Network Computing System 1.5 z roku 1988. Táto možnosť je s nimi spätne kompatibilná a nie je v konflikte s historickými UUID NCS.

Možnosti 1 a 2

Používajú sa na identifikáciu moderných dátových blokov a polí a v kanonickej textovej forme sa navzájom nelíšia, s výnimkou poradia, v ktorom sú zapísané variantné bity. Takže možnosť 1 používa poradie bajtov big-endian a možnosť 2 používa title-endian. Prvý je hlavný a druhý je vyhradený na prácu so skoršími identifikátormi GUID z Microsoft Windows.

Možnosť 3

Momentálne sa nepoužíva. Je to vyhradená verzia pre budúce použitie - keď sa vyčerpajú možnosti predchádzajúcich možností.

Väčšina systémov kóduje identifikátor v big-endian, existujú však výnimky. Napríklad zaraďovanie v knižniciach Microsoft COM/OLE používa zmiešaný endian pri generovaní kódu z blokov title-endian a big-endian. Prvým sú prvé tri komponenty UUID a druhým sú posledné dva.