raatools/

UUID generátor

Generáljon véletlenszerű v4 UUID-kat — egyet vagy többet.

1

Mi az a UUID?

A UUID (Universally Unique Identifier – Univerzálisan Egyedi Azonosító) egy 128 bites szám, amelyet elosztott rendszerekben az információk egyedi azonosítására használnak, központi hatóság nélkül. A UUID-k szabványosítottak az RFC 4122-ben, és mindenhol megtalálhatók – az adatbázis-elsődleges kulcsoktól és az API-kérésnaplóktól a munkamenet-kezelésig és a fájlnév-adásig.

A standard UUID-formátum 36 karakter, négy kötőjellel: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, ahol M a verziót (1–5), N a változatot jelöli. A leggyakrabban használt verzió a UUID v4, amely kriptográfiai véletlenszerűséggel generál azonosítókat. Ez az eszköz alapértelmezés szerint UUID v4-et generál.

A UUID v4 formátuma

A UUID v4 122 véletlen bitet használ (a maradék 6 bit a verziót és a változatot kódolja). A formátuma xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, ahol minden x véletlen hex számjegy, az y pedig 8, 9, A vagy B értékű. A harmadik csoportban lévő 4-es azonosítja 4-es verzióként. Minden UUID v4 a kriptográfiai véletlenszerűség segítségével, egymástól függetlenül jön létre.

Az eszköz használata

Kattintson a generálás gombra egy új UUID v4 létrehozásához. Minden kattintás egy friss, kriptográfiailag véletlen azonosítót állít elő. Egyszerre több UUID-t is generálhat tömeges műveletekhez. A másolás gombbal a UUID a vágólapra kerül, és kódban, konfigurációkban vagy adatbázisokban felhasználható.

Általános UUID-felhasználási esetek

  • Adatbázis-elsődleges kulcsok: A UUID-k lehetővé teszik az elosztott rendszerek számára, hogy egymástól függetlenül hozzanak létre rekordokat kulcsütközés nélkül, ellentétben az automatikusan növelt egész számokkal, amelyek koordinációt igényelnek.
  • API-kéréses azonosítók: UUID-t csatoljon minden API-kéréshez a végponttól végpontig való nyomon követéshez mikroszolgáltatásokon keresztül.
  • Munkamenet-tokenek: Egyedi munkamenet-azonosítók létrehozása, amelyek kitalálhatatlanok.
  • Fájlnevek: Egyedi fájlneveket generálhat az ütközések elkerülésére, ha több felhasználó tölt fel egyszerre.
  • Idempotencia-kulcsok: UUID-k alkalmazása fizetési API-kban annak biztosítására, hogy ugyanazt a tranzakciót ne dolgozzák fel kétszer.

Ütközési valószínűség

A UUID v4 122 véletlen bittel rendelkezik, ami 5,3 × 10³⁶ lehetséges értéket jelent. Két azonos UUID generálásának valószínűsége csillagászatilag kicsi. 2,71 × 10¹⁸ UUID-t (2,71 kvintilliót) kellene generálni, hogy 50%-os valószínűséggel legyen egyetlen ütközés. A gyakorlatban az ütközések semmilyen alkalmazás esetén nem jelentenek reális aggodalomra okot.

Nil UUID

A nil UUID (00000000-0000-0000-0000-000000000000) egy speciális érték, amelyet az RFC 4122 helyőrzőként vagy alapértelmezettként definiál. Egyes alkalmazások UUID-típusú adatbázis-oszlopokban „nincs érték

UUID-verziók összehasonlítása

A UUID v1 az aktuális időbélyeget és az eszköz MAC-cimét használja – gyors, de potenciálisan kiszivárogtatja az eszközinformációkat. A UUID v3 és v5 MD5 és SHA-1 segítségével névtérből és névből determinisztikus UUID-ket generál. A UUID v4 tiszta véletlenszerűséget alkalmaz, ami az egyediség, az egyszerűség és az adatvédelem legjobb kombinációját kínálja. A UUID v7 (tervezet szabvány) időbélyeg-előtagot kombinál véletlenszerűséggel az időrendbe soroltható UUID-kért.

Biztonságos-e a UUID-m?

Igen. A generálás a böngésző natív crypto.randomUUID() API-ját használja, amely kriptográfiailag biztonságos véletlenszerűséget biztosít. Minden feldolgozás helyben, az eszközén zajlik. UUID-ek nem kerülnek naplózásra, tárolásra vagy továbbításra semmilyen szerverre.

Gyakran ismételt kérdések

UUID-okat vagy automatikusan növekvő azonosítókat érdemes-e használni?

Az UUID-k jobbak az elosztott rendszerekhez, a mikroszolgáltatás-architektúrákhoz és minden olyan esethez, ahol rekordokat több szerveren hoznak létre. Az automatikusan növekvő azonosítók egyszerűbbek, kisebbek (4–8 bájt vs. 16 bájt), és hatékonyabbak az adatbázis-indexeléshez. Az architektúra alapján válasszon – a centralizált rendszerek használhatnak auto-inkrement-et, az elosztott rendszerek hasznosítják a UUID-eket.

UUID-okat karakterláncként kell-e tárolni az adatbázisban?

Nem. A legtöbb adatbázis natív UUID-típust támogat, amely 16 bájtban tárolja az értéket a 36 bájtos karakterlánc-ábrázolás helyett. A PostgreSQL rendelkezik UUID oszloptípussal, a MySQL BINARY(16)-ot tud használni, a MongoDB pedig saját UUID bináris altípusát alkalmazza. A natív típusok használata tárhelyet takarít meg és javítja a lekérdezési teljesítményt.