Jak nástroj použít
- 1.Hned po načtení stránky se zobrazí nové UUID verze 4. Klikněte na Kopírovat a můžete ho použít.
- 2.Pro ID řazená podle času vytvoření zvolte „Verze 7“ a vyberte, kolik jich potřebujete (až 100).
- 3.Volbami „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.
- 4.Vlož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ů, tedy 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.