← Összes eszköz

UUID Generátor (v4 GUID)

Generálj véletlenszerű v4 UUID-kat (GUID-okat) azonnal a böngésződben. Tudd meg, mi a 128 bites UUID, miben térnek el a verziók, ütközési esély, és mikor használd.

Mi is valójában az UUID

Az UUID, azaz Universally Unique Identifier (univerzálisan egyedi azonosító), egy 128 bites érték, amelyet arra használnak, hogy megjelöljenek vele valamit anélkül, hogy előbb bárkitől engedélyt kellene kérni. Találkozhatsz még a GUID, azaz Globally Unique Identifier néven is, ami egyszerűen a Microsoft által ugyanerre az ötletre adott elnevezés a Windows és a .NET világában. A két kifejezés szinte minden lényeges esetben ugyanazt a 128 bites számot írja le, így amikor egy kollégád GUID-ot mond, te pedig UUID-ot, szinte mindig pontosan ugyanarról a dologról beszéltek.

Ezt a 128 bitet általában 32 hexadecimális számjegyként írják le, öt csoportra bontva kötőjelekkel, 8-4-4-4-12 mintában. Egy tipikus érték így néz ki: 123e4567-e89b-12d3-a456-426614174000. A kötőjeleknek önmagukban nincs jelentésük; pusztán azért léteznek, hogy az ember könnyebben olvasson, és ne veszítse el a helyét az értékben. Minden karakter egy hexadecimális számjegy 0-tól f-ig, ezért egy UUID sűrűbbnek tűnik, mint egy hétköznapi szám, jóllehet a felszín alatt csupán egyetlen, nagyon nagy egész szám.

Absztrakt, izzó hexadecimális token, amely egy egyedi 128 bites azonosítót jelképez sötét indigó háttéren
Az UUID egyetlen 128 bites szám, 32 hexadecimális számjegyként, öt kötőjellel elválasztott csoportban leírva.

Verziók, és miért nyer a v4

A szabvány több verziót is meghatároz, és ezek abban különböznek, hogyan töltik ki a biteket. Az 1-es verzió időalapú: összefonja az aktuális időbélyeget a gép hálózati MAC-címével. Ez sorbarendezhetővé teszi a v1 értékeket a létrehozás ideje szerint, de emellett elárulja, hol és nagyjából mikor jöttek létre, ami nem mindig kívánatos. A 3-as és 5-ös verzió névalapú: egy névtér és egy név hashelésével, így ugyanaz a bemenet mindig ugyanazt az azonosítót adja.

A 4-es verzió teljesen más utat jár be. Szinte tisztán véletlenszerű. A 128 bitből hat van fenntartva a verzió és a variáns jelölésére, 122 bit marad véletlen adattal feltöltve. Nincs időbélyeg, nincs MAC-cím, nincs névtér, csak zaj. Pontosan ezért generál a legtöbb eszköz, köztük ez is, alapértelmezetten v4-et. Semmit nem árul el az eszközről vagy a létrehozás pillanatáról, és nincs szükség a létrehozó felek közötti koordinációra. Az ezen az oldalon lévő eszköz teljes egészében a böngésződben fut, így a véletlen értékek soha nem hagyják el a gépedet.

Mennyire valószínűtlen valójában egy ütközés

Az ésszerű aggodalom az, hogy két véletlen UUID egy nap azonos lehet. 122 véletlen bittel a lehetséges v4 értékek tere 2 a 122. hatványon, ami nagyjából 5,3-szor 10 a 36. hatványon. Emberi léptékben ez azt jelenti, hogy évtizedeken át másodpercenként milliárdnyi UUID-ot kellene generálnod ahhoz, hogy az egyetlen duplikátum esélye bármi mérhetőre nőjön. Maga a szabvány úgy írja le az ütközés esélyét, mint ami elég közel van a nullához ahhoz, hogy elhanyagolható legyen. A gyakorlatban a csapatok egyedinek kezelik a v4-et, és ez helyes is.

Számtalan különálló, izzó kulcs lebeg egy hatalmas sötét térben, dublikátumok nélkül, cián és arany kiemelésekkel
A lehetséges v4 értékek halmaza olyan hatalmas, hogy az ütközések gyakorlatilag lehetetlenek.

Hol nyúlnak érte a fejlesztők

Mivel az egyediséghez nincs szükség központi hatóságra, az UUID-ok ott ragyognak, ahol a koordináció drága vagy lehetetlen. Természetes választás adatbázis-elsődleges kulcsokhoz, különösen, ha több szolgáltatás is beszúr sorokat, és nem állhatsz meg, hogy megkérdezz egy közös számlálót a következő számért. Elosztott rendszerekben a bolygó két ellentétes oldalán lévő két csomópont is generálhat azonosítókat pontosan ugyanabban a pillanatban anélkül, hogy valaha ütköznének. API idempotencia-kulcsokat is hajtanak, ahol az ügyfél egy UUID-ot csatol a kéréshez, hogy a szerver biztonságosan figyelmen kívül hagyhassa a duplikátumot, ha a hálózat újrapróbálkozik. Munkamenet-tokenek, fájlnevek, eseményazonosítók és üzenetkulcsok is mind ugyanerre a tulajdonságra támaszkodnak.

UUID kontra automatikusan növekvő azonosítók

A klasszikus alternatíva az automatikusan növekvő egész szám: 1, 2, 3, és így tovább. A szekvenciális azonosítók kompaktak, természetesen rendezhetők, és könnyen olvashatók, de valódi hátrányaik is vannak. Elárulják, hány rekord létezik, és lehetővé teszik, hogy kívülállók kitalálják a szomszédos értékeket, emellett minden beszúrást egyetlen számlálón keresztül kényszerítenek, ami szűk keresztmetszetté válik, ha megosztod az adatbázist, vagy több forrásból egyesítesz adatokat. Az UUID-ok megoldják ezeket a problémákat azzal, hogy bármelyik fél önállóan generálhat kulcsot, és semmit nem árulnak el a mennyiségről vagy a sorrendről. A csere a méret és egy kicsit kevesebb lokalitás az indexekben. Az olyan rendszerek számára, amelyek horizontálisan skálázódnak, vagy el kell rejteniük a belső működésüket, ez a csere általában megéri. Ezt és a hasonló segédeszközöket felfedezheted a összes generátor gyűjteményünkön keresztül, vagy böngészd a szélesebb fejlesztői eszközök készletét kapcsolódó építőelemekért.

Gyakran ismételt kérdések

Ugyanaz a GUID, mint az UUID?

A mindennapi célokra igen. A GUID a Microsoft elnevezése ugyanarra a 128 bites azonosítóra. Az egyetlen valós különbség a bájtsorrend a nyers bináris formában néhány Windows-rendszeren; szöveges formában azonosak és felcserélhetők.

Melyik UUID-verziót generálja ez az eszköz?

A 4-es verziót, a véletlen variánst. A 128 bitjéből 122 véletlen adattal van feltöltve, ami rendkívül valószínűtlenné teszi az ismétlődést, és azt jelenti, hogy nem hordoz sem időbélyeget, sem eszközinformációt.

Lehet valaha két UUID azonos?

Elméletben a valószínűség nem pontosan nulla, de a kb. 5,3-szor 10 a 36. hatványon lehetséges v4 értékkel olyan kicsi, hogy elhanyagolhatónak tekintik. Csillagászati mennyiséget kellene generálnod belőlük, mielőtt egy ütközés valószínűvé válna.

Miért használjunk UUID-ot automatikusan növekvő szám helyett?

Az UUID-okat bármelyik szolgáltatás önállóan, közös számláló nélkül létrehozhatja, nem árulják el a rekordok számát vagy sorrendjét, és fájdalommentessé teszik a sok forrásból származó adatok egyesítését. Az automatikusan növekvő azonosítók kisebbek, de nagy léptékben szűk keresztmetszetté válnak, és információt szivárogtatnak.

Szerveren generálódnak az UUID-ok?

Nem. Ez az eszköz teljes egészében a böngésződben fut, így a véletlen értékek helyben jönnek létre, és soha nem kerülnek elküldésre. Ez biztonságossá teszi olyan kulcsokhoz és tokenekhez, amelyeket privátban szeretnél tartani.

Mit jelent a kötőjeles minta?

A 8-4-4-4-12 csoportosítás pusztán olvashatósági konvenció. A kötőjelek nem hordoznak adatot; szeletekre bontják a 32 hexadecimális számjegyet, hogy az emberek könnyebben átfussák és összehasonlítsák az értékeket.