fixmint
HU

UUID v4 vagy v7: melyiket válaszd, és miért számít?

Szerző: · · frissítve: 2026. november 8. · 5 perces olvasás

Használd a UUID v4-et, ha csak véletlenszerű azonosítóra van szükséged, semmi másra. A UUID v7-et használd, ha az azonosító adatbázis-kulcs lesz, vagy ha azt szeretnéd, hogy az azonosítók a létrehozás ideje szerint rendeződjenek. Mindkettő 128 bites, ugyanabban a 36 karakteres alakban íródik, így a különbség abban van, hogyan vannak elrendezve a bitek. Az alábbi UUID-generátor bármelyik verziót elkészíti, egyszerre egytől 500-ig, a böngésződben.

UUID-generátorEgyedi azonosító a kódomhozPróbáld ki ingyen

Hogy néz ki egy UUID

Az UUID, vagyis univerzálisan egyedi azonosító, egy 128 bites szám, amely 32 hexadecimális számjegyként írható le, öt csoportban: 8, 4, 4, 4 és 12 számjeggyel, kötőjelekkel elválasztva. Példa: 3f2b8c1e-6d4a-4f7b-9c2e-8a1d5e0b7f63.

A számnak két része rögzített. Négy bit tárolja a verziót, ezért a harmadik csoport v4 esetén 4-essel, v7 esetén 7-essel kezdődik. Két bit a változatot (variant) adja meg, ezért a negyedik csoport 8, 9, a vagy b karakterrel kezdődik. A többi bit maga az azonosító. A változat- és verziójelző bitek miatt egy v4 UUID-ban 122 véletlen bit van, nem 128.

UUID v4: véletlenszerű

A v4 UUID a rögzített bitek kivételével véletlenszerű. Ez a 122 véletlen bit gyakorlatilag kizárja az ismétlődést. Tegyük fel, hogy egymilliárd v4 UUID-t generálsz. Annak az esélye, hogy közülük kettő megegyezik, nagyjából n négyzet osztva a lehetséges értékek számának kétszeresével, ami körülbelül 10 a -19. hatványon. Más szóval az ütközésekkel nem kell külön foglalkoznod.

Ez a becslés feltételezi, hogy a generátor kriptográfiai véletlenforrásból veszi a biteket. Egy kiszámítható generátor aláásná a becslést. Ez az eszköz a böngésző kriptográfiai véletlenforrását használja, a crypto.randomUUID vagy a crypto.getRandomValues segítségével.

UUID v7: először az idő

Az RFC 9562 határozza meg a v7-et. Első 48 bitje a Unix-időt tárolja ezredmásodpercben, így a később létrehozott azonosító első része nagyobb, mint a korábbié. Ezt követik a verziójelző bitek, majd véletlen bitek, a változatbitek és további véletlen bitek. A véletlen tartomány egy része számlálót is tárolhat, ami sorrendben tartja az azonosítókat, ha több is készül ugyanabban az ezredmásodpercben.

Mivel az idő áll elöl, a v7 azonosítók szövegként, egységes betűalakban rendezve ezredmásodpercre pontosan a létrehozás ideje szerint sorba állíthatók. Ez azért működik, mert a hexadecimális számjegyek rögzített szélességűek, az idő pedig a vezető karakterekben van.

Az idő látható is. Aki elolvas egy v7 UUID-t, nagyjából meg tudja állapítani, mikor készült. Ezt magad is ellenőrizheted az UUID-generátor Elemzés mezőjével, amely az első 48 bitet visszaalakítja dátummá és időponttá.

Miért jó a v7 adatbázis-indexekhez

Az adatbázis-index általában B-fa, vagyis kulcs szerint rendezett szerkezet. Ha a kulcs véletlenszerű, mint v4 esetén, minden új sor az index véletlenszerű helyére kerül. Az adatbázisnak így az index sok különböző részébe kell írnia, ami több oldalfelosztást és több gyorsítótár-hiányt (cache miss) okoz. Nagy táblánál ez a munka összeadódik.

Egy v7 kulcs szinte minden meglévő kulcsnál nagyobb, mert az időrész folyamatosan nő. Az új sorok az index végéhez kerülnek, hasonlóan egy automatikusan növekvő számhoz. A friss indexlapok a memóriában maradnak, az írások pedig rendezettek. A különbség nagy, folyamatosan növekvő táblákban a legfeltűnőbb, kis táblában alig látszik.

Melyiket válaszd: v4 vagy v7

  • Adatbázis-elsődleges kulcsok, vagy bármely idővel bővülő tábla: v7. Az index rendezett marad.
  • Naplók, események vagy üzenetek, amelyeket gyakran időrend szerint rendezel: v7, mert maga az azonosító hordozza a sorrendet.
  • Nyilvános azonosítók, ahol a létrehozás ideje maradjon titkos: v4. A v7 azonosító elárulja, mikor készült.
  • Sok eszköz, megbízhatatlan órákkal: a v4 és a v7 egyaránt egyedi marad, mert ezt a véletlen bitek intézik. Csak a v7 rendezési sorrendje függ attól, hogy az órák pontosak-e.

Mindkét verzió szabvány, de a régebbi könyvtárak csak a v4-et ismerhetik. Az RFC 4122 évekig az 1–5. verziót írta le. Az RFC 9562 2024 májusában jelent meg, lecseréli az RFC 4122-t, és a 6., 7. és 8. verziót definiálja. Mielőtt rá támaszkodnál, ellenőrizd, hogy a könyvtárad támogatja-e a v7-et.

UUID-k tárolása

Szövegként írva egy UUID 36 karakter. 16 bájtja bináris formában is tárolható, ami sokkal kevesebb helyet foglal. Sok adatbázisnak van natív UUID típusa vagy 16 bájtos bináris oszlopa erre a célra, és ez szövegnél gyorsabban hasonlítható össze.

Válassz egy formátumot, és maradj is mellette. A nagybetűs, a kisbetűs, a kötőjeles és a kapcsos zárójeles alak egy ember számára ugyanaz az UUID, de egy adatbázis vagy egy szöveges összehasonlítás különbözőnek tekintheti őket. A generátor nagybetűs, kötőjel nélküli és kapcsos zárójeles beállításai azoknak a rendszereknek vannak, amelyek ilyen formát várnak.

Az UUID-t soha ne használd titokként

Az UUID azonosító, nem jelszó, munkamenet-token vagy hozzáférési kulcs. Egyedinek készül, nem kitalálhatatlannak. A v7 UUID a létrehozás idejét is hordozza. Az azonosítókat pedig linkekbe, naplókba, e-mailekbe és képernyőképekre másolják, ahol bárki, aki látja, újra felhasználhatja őket.

A hozzáférés-vezérlés helye a szerver. Attól, hogy valaki ismer egy azonosítót, még nem szabad automatikusan látnia vagy módosítania a hozzá tartozó rekordot. Jelszavakhoz, jelmondatokhoz vagy tokenekhez titkos adatokra készült generátort használj. A jelszógenerátor az eszközödön, biztonságos véletlenszámmal készít véletlen jelszavakat vagy szavas jelmondatokat, és megbecsüli az erősségüket. Ha azt szeretnéd megtudni, miért számít a hossz és a véletlenszerűség, olvasd el az erős jelszavak és az entrópia című cikket.

Az eszköz használata

  1. Válaszd a 4-es verziót véletlenszerű azonosítókhoz, vagy a 7-es verziót olyan azonosítókhoz, amelyek időrend szerint rendezhetők.
  2. Add meg a darabszámot, egyszerre 1-től 500-ig.
  3. Jelöld be a nagybetűs, a kötőjel nélküli vagy a kapcsos zárójeles beállítást, ha a kódod egy adott formát vár.
  4. Másold ki mindet, vagy töltsd le a listát .txt fájlként.
  5. Illessz be bármely UUID-t az Elemzés mezőbe, hogy megnézd a verzióját, a változatát, és v7 esetén a benne rejlő időt.

Gyors válaszok

Egyedi a v4 UUID? A gyakorlatban igen. Az 122 véletlen bitje miatt az ismétlődés olyan valószínütlen, hogy nem kell ellenőrizned.

Mindenhez a v7-et használjam? Nem mindig. A v7-et adatbázis-kulcsokhoz és időrend szerint rendezett adatokhoz használd. A v4-et akkor, ha a létrehozás ideje rejtve maradjon.

Használhatom jelszóként a UUID-t? Nem. Ez azonosító. Mindent, aminek titkosnak kell maradnia, jelszógenerátorral készíts.

Elküldi az eszköz valahová az azonosítókat? Nem. Az azonosítók a böngésződben készülnek és jelennek meg, szerverre nem küldjük el őket.

A Angol eredeti alapján, MI segítségével fordítva.

Hozzászólások

    Még nincs hozzászólás. Legyél te az első.

    Az értékelésed (nem kötelező)

    Az e-mail-címed sosem jelenik meg, és nem tároljuk.

    Open Data for AGI - Why Public, Free, and Open Datasets Matter borítójaOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Miért fogják a nyilvános, ingyenes és nyílt adathalmazok ugyanúgy formálni a mesterséges általános intelligenciát, mint az algoritmusok és a számítási kapacitás.

    $4.99Megvásárlás a GumroadonAngolul