Univerzální unikátní identifikátor
Univerzální unikátní identifikátor (anglicky Universally Unique Identifier zkr. UUID nebo také anglicky Globally Unique Identifier zkr. GUID) je 128bitové číslo používané k identifikaci informací v počítačových systémech. Když jsou UUID generovány podle standardních metod, jsou pro praktické účely jedinečné. Jejich jedinečnost nezávisí na ústředním registračním orgánu, nebo koordinaci mezi stranami, které je vytvářejí. I když není nulová pravděpodobnost, že UUID může existovat duplicitně, je taková možnost dostatečně blízká nule, aby byla zanedbatelná. Kdokoli tedy může vygenerovat UUID pro svoji potřebu a použít jej k identifikaci něčeho s jistotou, že identifikátor se nebude shodovat s UUID pro identifikaci něčeho jiného. Informace označené UUID nezávislými stranami mohou být proto později sloučeny do společné databáze se zanedbatelnou pravděpodobností duplikátů.
Přijetí UUID je rozšířené a mnoho výpočetních platforem poskytuje podporu pro jejich generování a pro analýzu jejich textové reprezentace.
Formát
Ve svém kanonickém tvaru je 16 bajtů UUID[1] reprezentováno jako 32 šestnáctkových číslic (base-16), zobrazených v 5 skupinách oddělených spojovníky, o délkách 8-4-4-4-12, tj. pro celkem 36 znaků (32 alfanumerických znaků a 4 spojovníky). Například:
123e4567-e89b-12d3-a456-426655440000
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
Pole M
a N
obsahují metadata o samotném UUID. 4bitové pole M
obsahuje verzi UUID a nejvýznamnější bit v 1- až 3bitovém poli N
obsahuje variantu UUID. V příkladu M je 1
, a N je a
(10xx2), což znamená, že se jedná o časově založený UUID DCE / RFC 4122 verze 1, varianta 1.
Název | Délka (bajty) | Délka (16-kové číslo) | Obsahuje |
---|---|---|---|
time_low | 4 | 8 | celé číslo dávající spodních 32 bitů času |
time_mid | 2 | 4 | celé číslo dávající středních 16 bitů času |
time_hi_and_version | 2 | 4 | 4bit „verze“ v nejvýznamnějším bitu, následována horními 12 bity času |
clock_seq_hi_and_res clock_seq_low | 2 | 4 | 1- až 3bity „varianty“ v nejvýznamnějším bitu, následované 13- až 15bity časového úseku |
node | 6 | 12 | 48bitový uzel ID |
Tyto názvy polí odpovídají časově založeným UUID ve verzi 1 a 2, ale samotný kánonický tvar 8-4-4-4-12 je stejný pro všechny UUID bez ohledu na to že jsou tvořeny jinak.
RFC 4122 Section 3 vyžaduje písmena v minuskulách, přestože na vstupu nejsou rozlišované minuskule a majuskule (anglicky case-insensitive)
RFC 4122 také definuje jaký se používá formát Uniform Resource Name (URN) pro UUID. UUID reprezentované formou URN vypadá následovně:[1]
urn:uuid:123e4567-e89b-12d3-a456-426655440000