Jak nástroj použít
- 1Hned po načtení stránky se zobrazí nové UUID verze 4. Klikněte na Kopírovat a můžete ho použít.
- 2Pro ID řazená podle času vytvoření zvolte „Verze 7“ a vyberte, kolik jich potřebujete – až 100.
- 3Volbami „Velká písmena“, „Bez pomlček“ nebo „Ve složených závorkách“ přizpůsobíte formát tomu, co očekává váš kód.
- 4Vložte existující UUID do pole „Rozbor UUID“ – ověříte, zda je platné, a uvidíte jeho verzi, variantu a u časových verzí i to, kdy vzniklo.
Co je UUID?
UUID (universally unique identifier, tedy univerzálně jedinečný identifikátor), ve světě Microsoftu označované jako GUID, je 128bitové číslo zapsané jako 32 šestnáctkových číslic v pěti skupinách, například f47ac10b-58cc-4372-a567-0e02b2c3d479. Může ho vytvořit kterýkoli počítač, aniž by se musel ptát centrálního serveru, a je prakticky jisté, že stejné UUID nikdy nevytvoří nikdo jiný. Proto jsou UUID oblíbená jako klíče v databázích, názvy souborů nebo ID požadavků – všude, kde záznamy vznikají na mnoha místech najednou.
Formát definuje specifikace RFC 9562, která v roce 2024 nahradila RFC 4122. První číslice třetí skupiny udává verzi – v příkladu výše 4 – a první číslice čtvrté skupiny variantu, která je u standardních UUID 8, 9, a nebo b.
Verze 4, nebo verze 7?
Verze 4 je 122 bitů čisté náhody. Neprozrazuje nic o tom, kdy nebo kde vznikla, a pro většinu použití je správnou výchozí volbou. Abyste dosáhli byť jen pravděpodobnosti jedna ku miliardě, že vznikne jediná duplicita, museli byste jich vygenerovat zhruba 103 bilionů.
Verze 7 začíná 48bitovým časovým razítkem v milisekundách, za kterým následují náhodné bity, takže později vytvořená UUID se řadí za dřívější. Databáze pak přidávají nové klíče na konec indexů místo na náhodná místa, díky čemuž zůstává vkládání rychlé a indexy kompaktní. Daní za to je, že z UUID může kdokoli vyčíst čas vytvoření – jak ukazuje rozbor UUID na této stránce.
Jak se tato UUID generují
Vše probíhá ve vašem prohlížeči. UUID verze 4 pocházejí z funkce crypto.randomUUID(), která využívá kryptograficky bezpečný generátor náhodných čísel operačního systému. UUID verze 7 kombinují aktuální čas s náhodnými bity z crypto.getRandomValues() a čítač zajišťuje, že ostře rostou, i když jich vygenerujete mnoho během jedné milisekundy – jak doporučuje RFC 9562.
Nic se neposílá na server ani neukládá, takže ID, která tu vygenerujete, máte jen vy.
Otázky a odpovědi
Jsou UUID opravdu jedinečná?
Zaručeně ne, ale pro jakékoli praktické účely dostatečně. Při 122 náhodných bitech je kolize u verze 4 mnohem méně pravděpodobná než to, že vaše data poškodí porucha hardwaru. Duplicity reálně hrozí jen tehdy, když je generátor náhodných čísel vadný – proto tento nástroj používá kryptografický generátor prohlížeče.
Jaký je rozdíl mezi UUID a GUID?
V praxi žádný. GUID (globally unique identifier) je název, který Microsoft používá pro stejný 128bitový formát. Nástroje ve Windows často zobrazují GUID velkými písmeny a ve složených závorkách, například {F47AC10B-58CC-4372-A567-0E02B2C3D479} – stejný tvar získáte volbami „Velká písmena“ a „Ve složených závorkách“.
Mám UUID používat jako primární klíče v databázi?
Osvědčí se, když záznamy vznikají na mnoha místech nebo když ID nesmí prozradit, kolik záznamů existuje. Pro primární klíče dejte přednost verzi 7 před verzí 4: díky časovému řazení zůstávají indexy typu B-strom kompaktní a vkládání rychlé. UUID ukládejte do nativního sloupce uuid nebo jako 16 bajtů, ne jako 36znakový text.
Dá se zjistit, kdy bylo UUID vytvořeno?
Jen u časových verzí. Verze 1, 6 a 7 obsahují časové razítko, které rozbor UUID na této stránce dekóduje. Verze 4 je čistě náhodná a verze 3 a 5 jsou hashe názvu, takže žádný čas nenesou.
Můžu UUID použít jako tajný token?
UUID verze 4 z kryptografického generátoru se těžko uhodne, ale není navržené jako tajemství – UUID končí v logech, URL adresách i na snímcích obrazovky. Pro odkazy na obnovení hesla, klíče API nebo tokeny relací použijte raději k tomu určený náhodný token. Verzi 7 jako tajemství nikdy nepoužívejte, protože část z ní tvoří předvídatelné časové razítko.