UUID v4 generátor – gyors, biztonságos és teljesen böngészőben futó azonosítógenerálás
Ez az oldal UUID v4 azonosítókat állít elő – véletlenszerű, 36 karakterből álló sztringeket, a szabványos 8-4-4-4-12 hexadecimális formátumban. A felhasználó szabályozhatja a darabszámot (1 és 100 között), a kis- és nagybetűs megjelenítést, valamint a kötőjelek használatát. Minden generálás közvetlenül a böngészőben történik, erős kriptográfiai véletlenszám-generátorral. A kapott azonosítók egyenként vagy egyben is másolhatók.
Mi különbözteti meg ezt az oldalt a többi UUID generátortól?
A UUID v4 122 bit véletlenszerűséget használ, és nem tartalmaz beágyazott időbélyeget. Emiatt minden egyes érték gyakorlatilag kiszámíthatatlan, az ütközés valószínűsége elhanyagolható. Ellentétben a UUID v7-tel vagy az ULID-del, a v4 azonosítók rendezése véletlenszerű – nem hordoznak időbeli információt, ami adatbázis-elsődleges kulcsként használva fragmentálhatja az indexeket.
Az oldal lehetőséget ad a kis- és nagybetűs megjelenítés, valamint a kötőjelek ki- és bekapcsolására. A belső véletlenszerűség és a formátum azonban rögzített. Az alapértelmezett kimenet kisbetűs, kötőjelekkel. Bármely opció módosítása újragenerálja a teljes készletet.
Bemenetek és kimenetek
Bemenetek:
- Formátum: UUID v4 (a választható UUID v4, UUID v7, ULID és NanoID közül).
- Darabszám: 1 és 100 közötti egész szám.
- Nagybetűs: Kapcsoló a UUID nagybetűs megjelenítéséhez (alapértelmezés: kikapcsolva).
- Kötőjelek: Kapcsoló a kötőjelek használatához a 8-4-4-4-12 reprezentációban (alapértelmezés: bekapcsolva).
Kimenetek:
- Generált azonosítók: UUID v4 sztringek listája.
- Azonosítók száma: A generált azonosítók darabszáma a lista mellett.
- Státuszüzenetek: „Ready.” (kezdeti), „Generated.” (generálás után), „Copied all!” (összes másolása után).
Szabályok és peremfeltételek
- A UUID v4 122 bit véletlenszerűséget tartalmaz 36 karakter formájában (32 hexadecimális számjegy plusz 4 kötőjel, ha a kötőjelek engedélyezettek).
- Az ütközés valószínűsége elhanyagolható, de az értékek véletlenszerűen rendeződnek – nincs időrendi sorrend.
- Bármely opció módosítása (darabszám, nagybetűs/kisbetűs, kötőjelek) azonnal újragenerálja az azonosítókat.
- A darabszámnak 1 és 100 között kell lennie; ezen kívüli értékeket az oldal nem fogad el.
- Egy adott azonosítóra kattintva az a vágólapra kerül.
- Az „Összes másolása” gomb az összes megjelenített azonosítót a vágólapra másolja.
- Minden generálás a böngészőben történik; semmi nem kerül a szerverre.
- Ha a formátumot UUID v4-ről másikra váltjuk, a nagybetűs és kötőjel opciók változhatnak (de ez az ismertető csak a UUID v4-re vonatkozik).
Kinek ajánljuk ezt az eszközt?
- Fejlesztőknek, akik egyedi, kiszámíthatatlan azonosítókra van szükségük biztonsági tokenekhez, munkamenet-azonosítókhoz vagy nem soros kulcsokhoz.
- Adatbázis-adminisztrátoroknak, akik tisztában vannak a kompromisszummal: a UUID v4 elkerüli az ütközéseket, de elsõdleges kulcsként használva fragmentálhatja az indexeket (érdemes megfontolni az idõben rendezhetõ alternatívákat, például UUID v7 vagy ULID).
- Bárki, aki tesztadatokat, külsõ azonosítókat vagy anonimizált kulcsokat generál, ahol az idõbeli rendezés nem releváns, de a kitalálhatatlanság fontos.
- Felhasználók, akik gyorsan szeretnének egy adag (akár 100 darab) UUID v4 értéket elõállítani, és kis- vagy nagybetûs formában, kötõjelekkel vagy anélkül másolni.
Témaszempontok – részletes elemzés
1. A UUID v4 struktúrája
Egy UUID v4 16 oktettből áll, amelyek közül 122 bit véletlenszerű. A szabvány (RFC 4122) szerint a verziómező (4 bit) és a variánsmező (2 bit) rögzített: a 13. hexadecimális karakter mindig "4", a 17. karakter pedig "8", "9", "A" vagy "B" lehet. A fennmaradó 122 bit teljesen véletlenszerű. A 32 hexadecimális számjegyet négy kötőjel tagolja a 8-4-4-4-12 mintázat szerint: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, ahol x véletlen, y pedig a variánsbitet tartalmazza.
Példa: f47ac10b-58cc-4372-a567-0e02b2c3d479
2. A véletlenszerűség minősége
A böngészők a crypto.getRandomValues() függvényt használják, amely kriptográfiailag erős pszeudo-véletlenszám-generátorra (CSPRNG) épül. Ez a módszer megfelel a legszigorúbb biztonsági követelményeknek: az előállított bitek statisztikailag megkülönböztethetetlenek a valódi véletlentől, és külső támadó számára kiszámíthatatlanok. Az oldal semmilyen adatot nem küld a szerverre, így a generálás teljes mértékben privát és offline is működik.
3. Ütközési valószínűség
122 bit véletlenszerűség mellett az ütközés valószínűsége rendkívül alacsony. A születésnapi paradoxon alapján körülbelül 2,71·10^18 (2,71 kvintillió) UUID v4 előállítása után éri el az 50%-os ütközési esélyt. A gyakorlatban ez azt jelenti: ha másodpercenként egymilliárd UUID-t generálnánk, akkor is 85 évbe telne, mire 50% eséllyel lenne egy duplikáció. Ezért a UUID v4 ideális olyan rendszerekben, ahol a globális egyediség kritikus, és a központi koordináció nem lehetséges.
4. Hatás az adatbázis-indexek teljesítményére
A UUID v4 véletlenszerű sorrendje miatt az adatbázis B-fa indexei (pl. MySQL InnoDB, PostgreSQL) szétszórtan tárolják a bejegyzéseket. Ez gyakori oldalhasadásokhoz (page split) vezet, ami rontja a beszúrási teljesítményt és az index méretét. Ezzel szemben az időbélyeg alapú azonosítók (UUID v7, ULID, soros számok) időrendben beszúrhatók, így az indexek kompaktak maradnak. A fejlesztőknek mérlegelniük kell: ha a kiszámíthatatlanság fontosabb, mint a beszúrási sebesség, a UUID v4 jó választás. Ha a teljesítmény a prioritás, érdemes időben rendezhető alternatívát választani.
5. Összehasonlítás az időalapú azonosítókkal
| Tulajdonság | UUID v4 | UUID v7 | ULID |
|---|---|---|---|
| Véletlenszerűség | 122 bit | 74 bit | 80 bit |
| Időbélyeg | nincs | 48 bit (ms) | 48 bit (ms) |
| Rendezhetőség | véletlenszerű | időrendi | időrendi |
| Ütközés valószínűsége | elhanyagolható | nagyon alacsony | nagyon alacsony |
| Kitalálhatóság | gyakorlatilag lehetetlen | nehéz (időablak ismerete) | nehéz |
A UUID v4 nyújtja a legnagyobb véletlenszerűséget, de feláldozza a rendezhetőséget. A UUID v7 és ULID kompromisszumot kínál: az időbélyeg biztosítja a rendezést, de csökkenti a véletlenszerű bitek számát.
6. A kis- és nagybetűs, valamint a kötőjelek hatása
- Kisbetűs vs. nagybetűs: A hexadecimális számjegyek esetében a kis- és nagybetűs írásmód csak megjelenítési kérdés. A nagybetűs verzió (
F47AC10B-58CC-4372-A567-0E02B2C3D479) gyakran olvashatóbb emberi szemmel, míg a kisbetűs (f47ac10b-58cc-4372-a567-0e02b2c3d479) a legtöbb programozási környezetben alapértelmezett. Az oldal mindkét formát támogatja. - Kötőjelek: A szabványos UUID formátum kötőjeleket használ, de bizonyos kontextusokban (pl. fájlnevek, URL-ek) a kötőjel nélküli, 32 karakteres verzió praktikusabb lehet. A kötőjelek elhagyásakor a sztring hossza 36-ról 32 karakterre csökken, de a belső szerkezet változatlan marad.
7. Helyi feldolgozás – adatvédelem és offline használat
Mivel minden generálás a felhasználó böngészőjében történik, semmilyen adat nem hagyja el a számítógépet. Ez azt jelenti:
- Nincs adatforgalom a szerverrel – a UUID-k nem kerülnek naplózásra, nem tárolódnak.
- Offline is működik: az oldal betöltése után internetkapcsolat nélkül is lehet generálni.
- Nincs cookie vagy nyomkövetés az azonosítók generálásával kapcsolatban.
8. A bitméret és karaktertér
A UUID v4 specifikáció szerint a 128 bitból 122 véletlenszerű, 6 bit pedig rögzített (verzió és variáns). A 122 véletlen bit 32 hexadecimális számjegyként jelenik meg (4 bit per karakter). Ezért a karaktertér 16^32, azaz 2^128 lehetséges kombináció, de a rögzített bitek miatt a tényleges szám 2^122. Ez hatalmas tér: 5,3·10^36 lehetséges UUID v4 létezik.
9. Gyakorlati használati esetek
- Biztonsági tokenek: Mivel a UUID v4 kiszámíthatatlan, kiválóan alkalmas jelszó-visszaállító linkekhez, API-kulcsokhoz, munkamenet-azonosítókhoz.
- Tesztadatok: Fejlesztés során gyakran van szükség egyedi azonosítókra teszteléshez. Az oldal gyorsan előáll akár 100 darabot is.
- Külső azonosítók: Olyan rendszerekben, ahol az ügyfeleknek vagy partnereknek adunk egyedi hivatkozást, és nem szeretnénk, hogy a sorrendből következtetni lehessen a darabszámra.
- Anonimizálás: Adatbázisokban a személyes adatok helyettesíthetők UUID v4-gyel, megőrizve a kapcsolatok integritását anélkül, hogy az eredeti adatok visszafejthetők lennének.
Gyakran ismételt kérdések (FAQ)
1. Miért pont 36 karakter egy UUID v4? Mivel 32 hexadecimális számjegy (128 bit) és 4 kötőjel. Ha a kötőjeleket eltávolítjuk, a hossz 32 karakterre csökken. A 128 bitból 122 véletlen, 6 rögzített (verzió és variáns).
2. Tárolja az oldal a generált UUID-kat? Nem. Minden generálás kizárólag a böngésző memóriájában történik. Az oldal nem küld adatot a szerverre, nem használ sütiket és nem naplóz semmit.
3. Milyen gyors a generálás? Gyakorlatilag azonnali. A böngésző kriptográfiai függvénye néhány mikroszekundum alatt előállítja a kért darabszámot, még 100 UUID esetén sem érzékelhető késleltetés.
4. Használható UUID v4 elsődleges kulcsként nagy adatbázisokban? Használható, de bizonyos hátrányokkal. A véletlenszerű sorrend miatt a B-fa indexek fragmentálódnak, ami lassíthatja a beszúrásokat és növelheti a tárhelyigényt. Ha a beszúrási teljesítmény kritikus, érdemes UUID v7 vagy soros számok használatát megfontolni.
5. Mi a különbség a UUID v4 és a véletlenszerű hexadecimális sztring között? A UUID v4 szabványos formátumot követ, verzió- és variánsbitekkel, míg egy tetszőleges hexadecimális sztring nem feltétlenül rendelkezik ezzel a struktúrával. A UUID v4 garantálja a specifikáció szerinti elrendezést, ami bizonyos rendszerekben (pl. adatbázisok, API-k) követelmény lehet.
6. Mi történik, ha 100-nál több UUID-t akarok generálni? Az oldal 1 és 100 közötti darabszámot fogad el. Ennél nagyobb mennyiséghez több generálást kell végezni, vagy más eszközt kell használni. A 100-as korlát a teljesítmény és a használhatóság egyensúlyát szolgálja.