# UUID generátor

> Generáljon UUID-t (egyedi azonosítót) ingyen online. Támogatja az összes UUID verziót (v1, v3-v7), akár több ezer UUID egyszerre.

URL: https://acrafto.com/hu/uuid-generator/

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

## Mi az UUID?

Az UUID (Universally Unique Identifier) egy 128 bites azonosító, amelyet számítógépes rendszerekben használnak az információk egyedi azonosítására. Az UUID az RFC 4122 szabvány szerint standardizált, és óriási entrópiájának köszönhetően gyakorlatilag nulla az ütközés valószínűsége – ez azt jelenti, hogy két függetlenül generált UUID szinte biztosan egyedi lesz.

Az UUID standard formátuma: `xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx`, ahol minden `x` egy hexadecimális számjegy (0-9, a-f), `M` az UUID verzióját, `N` pedig a variánst jelöli.

## UUID Verziók

### UUID v1 (Időbélyeg + MAC cím)

A v1 UUID az aktuális időbélyegen és egy véletlen értéken alapul (böngészőben MAC cím helyett). 100 nanoszekundumos intervallumokat használ 1582. október 15. óta (Gergely-naptár).

**Használat:**

- Olyan helyzetek, ahol kronologikus UUID rendezésre van szükség
- Hibakeresés és naplózás (az UUID tartalmazza a létrehozás idejét)
- Elosztott rendszerek időszinkronizálással

**Példa:** `6ba7b810-9dad-11d1-80b4-00c04fd430c8`

**Előnyök:**

- Az UUID-k kronologikusan rendezhetők a létrehozás ideje szerint
- Hasznos auditáláshoz és hibakereséshez
- Időbélyeg információt tartalmaz

**Hátrányok:**

- Potenciális biztonsági kockázat – időbélyeget tartalmaz
- A böngészőben nem tartalmaz valódi MAC címet (véletlen értékkel helyettesítve)
- Rossz adatbázis lokalitás (az időbélyeg a low-order bitekben van)

### UUID v3 (MD5 hash)

A v3 UUID egy névtér UUID és egy név MD5 hash-ének felhasználásával generálódik. Determinisztikus – ugyanaz a névtér + név mindig ugyanazt az UUID-t hozza létre.

**Használat:**

- URL-ek, DNS nevek vagy más azonosítók UUID-vé konvertálása
- Olyan helyzetek, ahol reprodukálható UUID-kre van szükség
- Leképezés különböző azonosító rendszerek között

**Példa:** `a3bb189e-8bf9-3888-9912-ace4e6543002`

**Előnyök:**

- Determinisztikus (ugyanaz a bemenet = ugyanaz a kimenet)
- Ideális ismert azonosítók konvertálására
- Nincs ütközés különböző bemenetek esetén

**Hátrányok:**

- Az MD5 egy elavult algoritmus (preferálja a v5-öt)
- Névtérre és névre van szükség
- Nem lehet visszaállítani az eredeti bemenetet

### UUID v4 (Véletlenszerű) - AJÁNLOTT

Az UUID leggyakrabban használt verziója. A v4 UUID tisztán véletlenszerűen generálódik egy kriptográfiailag biztonságos véletlenszám-generátor (`crypto.getRandomValues()`) segítségével.

**Használat:**

- Adatbázis elsődleges kulcsai
- Munkamenet-azonosítók (session ID-k)
- Egyedi fájlnevek
- API tokenek
- Általános célokra, ahol garantáltan egyedi azonosítóra van szükség

**Példa:** `f47ac10b-58cc-4372-a567-0e02b2c3d479`

**Előnyök:**

- Maximális entrópia és biztonság
- Nincs függőség időtől vagy rendszerparaméterektől
- A legegyszerűbb implementáció

**Ütközés valószínűsége:** Ha 100 éven keresztül másodpercenként 1 milliárd v4 UUID-t generálunk, az ütközés esélye körülbelül 0,00000006%.

### UUID v5 (SHA-1 hash)

A v5 UUID ugyanaz, mint a v3, de MD5 helyett SHA-1-et használ. Modernebb és biztonságosabb alternatívája a v3-nak.

**Használat:**

- Ugyanaz, mint a v3, de jobb biztonsággal
- Preferált a v3 előtt új projektekhez
- UUID generálás URL-ből, DNS nevekből, OID-ből, X.500 DN-ből

**Példa:** `886313e1-3b8a-5372-9b90-0c9aee199e5d`

**Előnyök:**

- Determinisztikus
- Az SHA-1 robusztusabb, mint az MD5
- Alkalmas rendszerek közötti leképezésre

**Hátrányok:**

- Az SHA-1 is elavultnak számít (de még mindig biztonságosabb, mint az MD5)
- Névtérre és névre van szükség

### UUID v6 (Rendezett időbélyeg)

A v6 UUID a v1 továbbfejlesztett verziója átrendezett időbitekkel a jobb adatbázis-indexelés érdekében. Az adatbázisok lokalitási problémáinak megoldására tervezték.

**Használat:**

- Adatbázis elsődleges kulcsai időrendi rendezéssel
- Rendszerek, amelyek kronologikus rendezést és adatbázis-teljesítményt igényelnek
- Modernebb alternatíva a v1-hez

**Példa:** `1ec9414c-232a-6b00-b3c8-9e6bdeced846`

**Előnyök:**

- Jobb adatbázis lokalitás, mint a v1 (időbélyeg a high-order bitekben)
- Kronologikus rendezés
- Kompatibilis az UUID szabvánnyal

**Hátrányok:**

- Kevésbé használt, mint a v1/v4
- Még mindig tartalmaz időinformációkat (biztonsági kockázat)

### UUID v7 (Unix időbélyeg)

A v7 UUID Unix időbélyeget (milliszekundum 1970 óta) + véletlen biteket használ. Az UUID legújabb verziója a legjobb adatbázis lokalitással.

**Használat:**

- Modern adatbázis elsődleges kulcsok
- Rendszerek, amelyek teljesítményt + időrendi rendezést igényelnek
- A v1/v6 helyettesítése új projektekben

**Példa:** `017f22e2-79b0-7cc3-98c4-dc0c0c07398f`

**Előnyök:**

- A legjobb adatbázis lokalitás az összes verzió közül
- Az Unix időbélyeg szabványos
- Egyesíti a véletlenszerűség és az időrendi rendezés előnyeit

**Hátrányok:**

- Viszonylag új specifikáció (RFC 4122bis)
- Kevésbé támogatott a régi rendszerekben

## Melyik UUID verziót használjuk?

### Döntési útmutató

**Maximális biztonságra és véletlenszerűségre van szüksége?** → Használja az **UUID v4**\-et (leggyakoribb választás)

**Időrendi rendezésre és adatbázis-teljesítményre van szüksége?** → Használja az **UUID v7**\-et (modern) vagy az **UUID v6**\-ot (standard)

**Reprodukálható UUID-kre van szüksége meglévő azonosítókból?** → Használja az **UUID v5**\-öt (SHA-1) vagy az **UUID v3**\-at (MD5, régi)

**Időbélyegre és audit trailre van szüksége?** → Használja az **UUID v1**\-et (régi, rosszabb adatbázis-teljesítmény)

### Adatbázisok

**Új projektekhez:** UUID v7 vagy v4

- **v7** ideális időrendi rendezéshez + teljesítményhez
- **v4** maximális véletlenszerűséghez időinformációk nélkül

**Régi rendszerekhez:** UUID v1 vagy v6

- **v6** jobb adatbázis lokalitással rendelkezik, mint a v1
- **v1** széles körben támogatott

**Az UUID előnyei elsődleges kulcsként:**

- **Globális egyediség** – Különböző adatbázisokból származó adatokat konfliktus nélkül egyesíthet
- **Biztonság** – Az egymás utáni ID-kkel (1, 2, 3…) ellentétben nem lehet kitalálni a következő értékeket
- **Elosztott rendszerek** – Az UUID-k egymástól függetlenül generálhatók több szerveren koordináció nélkül
- **Adatbázisok egyesítése** – Két adatbázis egyesítésekor nem keletkeznek konfliktusok

**Hátrányok:**

- Nagyobb méret (16 bájt vs 4-8 bájt integer esetén)
- Lassabb indexelés egyes adatbázisokban (használja a v6/v7-et a jobb teljesítmény érdekében)
- Kevésbé olvasható emberi szem számára

### API-k és webes szolgáltatások

- **REST API** – Egyedi azonosítók erőforrásokhoz
- **GraphQL** – Globális azonosítók csomópontokhoz
- **Webhookok** – Kérések és válaszok nyomon követése
- **Tokenek** – Munkamenet-azonosítók, frissítési tokenek

### Fájlok és tárolás

- **Fájlnevek** – Ütközések megelőzése feltöltéskor
- **S3/Cloud Storage** – Egyedi útvonalak objektumokhoz
- **Cache kulcsok** – Azonosítók gyorsítótár-rendszerekben

### Frontend alkalmazások

- **React/Vue komponensek** – Egyedi kulcsok listákhoz
- **Temporary ID-k** – ID-k az adatbázisba mentés előtt
- **Local storage** – Kulcsok tárolt adatokhoz
- **Offline-first alkalmazások** – ID-k generálása szerverkapcsolat nélkül

## Generátor haladó funkciói

### UUID generálás egyedi idővel

Az időalapú verziókhoz (v1, v6, v7) tetszőleges időbélyeget választhat a dátum-idő választó segítségével. Ez hasznos a következőkhöz:

**Tesztelés:**

- Múltban létrehozott UUID-k szimulálása
- Adatbázisok időrendi rendezésének tesztelése
- UUID-k reprodukálása hibakereséshez

**Adatmigráció:**

- UUID-k generálása történelmi időbélyegekkel
- Adatok visszatöltése korrekt időbélyeg-értékekkel
- Adatok importálása különböző időszakokból

**Audit és megfelelés:**

- UUID-k rekonstrukciója a bejegyzés keletkezési ideje szerint
- Retroaktív azonosítók generálása

**Példa használatra:**

1. Válassza ki a v1, v6 vagy v7 verziót
2. Állítsa be a dátumot és időt a dátum-idő választóval
3. Generáljon UUID-t a saját időbélyegével

### Hash-alapú UUID (v3, v5)

Determinisztikus UUID-khez használhatja a v3 (MD5) vagy v5 (SHA-1) verziókat:

**Hogyan használjuk:**

1. Válassza ki a névteret az azonosító típusa szerint
2. Adja meg a nevet/értéket
3. Generáljon UUID-t

**Példák:**

| Névtér | Név (bevitel) | Használat |
| --- | --- | --- |
| DNS | `example.com` | Tartománynév UUID-vé konvertálása |
| DNS | `google.com` | Minden weboldalnak egyedi UUID-je van |
| URL | `https://example.com/page` | URL UUID-vé konvertálása |
| URL | `https://api.example.com/users/123` | API végpont mint UUID |
| OID | `1.3.6.1.4.1.343` | Objektumazonosító UUID-vé |
| X.500 | `CN=John Doe,O=Company` | Megkülönböztető Név UUID-vé |

**Fontos tulajdonságok:**

- ✅ **Determinisztikus**: Ugyanaz a bemenet = mindig ugyanaz az UUID
- ✅ **Reprodukálható**: Az UUID-t bármikor újra létrehozhatja
- ✅ **Konzisztens**: Ugyanaz az UUID különböző rendszerekben
- ❌ **Nem dekódolható**: Az UUID-ből nem lehet visszaállítani az eredeti nevet
- ℹ️ **Egy UUID**: A v3/v5 esetén mindig csak egy UUID generálódik (ugyanaz a bemenet = ugyanaz a kimenet)

**Gyakorlati használat:**

```
// Példa: URL konvertálása UUID v5-re
Namespace: URL
Név: https://example.com/api/users/123
Eredmény: 886313e1-3b8a-5372-9b90-0c9aee199e5d

// Ugyanaz a bemenet = mindig ugyanaz az UUID
Namespace: DNS
Név: google.com
Eredmény: mindig ugyanaz az UUID a google.com számára
```

## Hogyan használjuk biztonságosan az UUID-t?

### Kriptográfiai biztonság

Generátorunk a `crypto.getRandomValues()`\-t használja, amely egy kriptográfiailag biztonságos véletlenszám-generátor. A `Math.random()`\-től eltérően, amely előre jelezhető és biztonsági célokra alkalmatlan, a `crypto.getRandomValues()` valódi entrópiát biztosít, ami alkalmas a következőkhöz:

- Biztonsági tokenek generálása
- Munkamenet-azonosítók (Session ID-k)
- API kulcsok
- Kriptográfiai alkalmazások

### UUID verziók összehasonlítása

| Verzió | Alap | Ütközés | Időrendi rendezés | Adatbázis teljesítmény | Használat |
| --- | --- | --- | --- | --- | --- |
| v1 | Időbélyeg + MAC | Alacsony | ✅ Igen | ❌ Rosszabb | Régi, audit |
| v3 | MD5 hash | Nincs (determinisztikus) | ❌ Nem | ⚠️ Közepes | Konverziók (régi) |
| v4 | Véletlenszerű | Extrém alacsony | ❌ Nem | ⚠️ Közepes | Általános használat |
| v5 | SHA-1 hash | Nincs (determinisztikus) | ❌ Nem | ⚠️ Közepes | Konverziók (ajánlott) |
| v6 | Rendezett időbélyeg | Alacsony | ✅ Igen | ✅ Jobb | Modern adatbázisok idővel |
| v7 | Unix időbélyeg | Alacsony | ✅ Igen | ✅ Legjobb | Új projektek |

### UUID vs. egyéb azonosítók

| Típus | Méret | Ütközés | Időrendi rendezés | Használat |
| --- | --- | --- | --- | --- |
| Auto-increment ID | 4-8 bájt | Garantáltan egyedi a táblán belül | ❌ | Egyszerű alkalmazások, lokális adatbázis |
| UUID v4 | 16 bájt | Gyakorlatilag lehetetlen | ❌ | Elosztott rendszerek, API |
| UUID v7 | 16 bájt | Gyakorlatilag lehetetlen | ✅ | Modern adatbázisok teljesítménnyel |
| ULID | 16 bájt | Gyakorlatilag lehetetlen | ✅ | UUID + lexikografikus rendezés |
| Snowflake ID | 8 bájt | Garantáltan egyedi megfelelő konfigurációval | ✅ | Twitter, elosztott rendszerek |
| NanoID | Konfigurálható | Hosszfüggő | ❌ | URL-barát azonosítók |

## Implementáció különböző nyelveken

### JavaScript/TypeScript

```
// UUID v4 - A legegyszerűbb mód (modern böngészők)
const uuid = crypto.randomUUID();

// UUID v4 - Manuális implementáció
function generateUUIDv4() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
    const r = (crypto.getRandomValues(new Uint8Array(1))[0] & 0x0f) >> (c === 'x' ? 0 : 2);
    const v = c === 'x' ? r : (r & 0x3) | 0x8;
    return v.toString(16);
  });
}

// UUID v7 - Adatbázisokhoz ajánlott
function generateUUIDv7() {
  const timestamp = Date.now();
  const timeHi = (timestamp >> 16).toString(16).padStart(8, '0');
  const timeLow = (timestamp & 0xFFFF).toString(16).padStart(4, '0');

  const randomBytes = crypto.getRandomValues(new Uint8Array(10));
  const randomHex = Array.from(randomBytes)
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');

  return `${timeHi}-${timeLow}-7${randomHex.substr(0, 3)}-${randomHex.substr(3, 4)}-${randomHex.substr(7)}`;
}
```

### Python

```
import uuid

# UUID v4
uuid_v4 = str(uuid.uuid4())
# Output: '6ba7b810-9dad-11d1-80b4-00c04fd430c8'

# UUID v1
uuid_v1 = str(uuid.uuid1())
```

### Java

```
import java.util.UUID;

// UUID v4
String uuidV4 = UUID.randomUUID().toString();
```

### PHP

```
// UUID v4 (PHP 7+)
function generateUUID() {
    return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
        mt_rand(0, 0xffff), mt_rand(0, 0xffff),
        mt_rand(0, 0xffff),
        mt_rand(0, 0x0fff) | 0x4000,
        mt_rand(0, 0x3fff) | 0x8000,
        mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
    );
}
```

### C#

```
using System;

// UUID v4
Guid uuid = Guid.NewGuid();
string uuidString = uuid.ToString();
```

## Bevált gyakorlatok

### UUID tárolása adatbázisban

**PostgreSQL:**

```
CREATE TABLE users (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    email VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT NOW()
);
```

**MySQL 8.0+:**

```
CREATE TABLE users (
    id BINARY(16) PRIMARY KEY DEFAULT (UUID_TO_BIN(UUID())),
    email VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```

**Tipp:** MySQL-ben tárolja az UUID-t `BINARY(16)` formátumban `CHAR(36)` helyett a helytakarékosság és a gyorsabb indexelés érdekében.

### UUID validálás

```
function isValidUUID(uuid) {
  const regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
  return regex.test(uuid);
}
```

### UUID konverzió

```
// Kötőjelek eltávolítása
const compact = uuid.replace(/-/g, '');

// Kötőjelek visszahelyezése
function formatUUID(compactUuid) {
  return [
    compactUuid.substring(0, 8),
    compactUuid.substring(8, 12),
    compactUuid.substring(12, 16),
    compactUuid.substring(16, 20),
    compactUuid.substring(20, 32)
  ].join('-');
}
```

## Hibaelhárítás

### UUID v3/v5 nem működik

**Probléma:** V3 vagy v5 kiválasztása után semmi sem generálódik

**Megoldás:**

1. ✅ Ellenőrizze, hogy **kitöltötte-e a “Név” mezőt** - kötelező!
2. ✅ Válassza ki a megfelelő névteret a bemenet típusa szerint
3. ✅ Példák érvényes bemenetekre:
   - DNS: `example.com`, `google.com`
   - URL: `https://example.com/page`
   - Bármilyen szöveg: `sajat-alkalmazas-v1`

**Tipp:** Próbáljon meg először egy egyszerű értéket, például `test`\-et és DNS névteret használni.

### Az időalapú UUID (v1, v6, v7) furcsa időt mutat

**Probléma:** A generált UUID váratlan időbélyeggel rendelkezik

**Megoldás:**

1. ✅ Ellenőrizze a dátum-idő választót – helyesen van beállítva az idő?
2. ✅ A dátum-idő választó az Ön helyi időzónáját használja
3. ✅ Hagyja üresen a dátum-idő választót az aktuális időhöz

### Az UUID nem másolható

**Probléma:** A “Mind Másolása” gomb nem működik

**Megoldás:**

1. ✅ Ellenőrizze, hogy generált-e UUID-t (nincsenek üresek)
2. ✅ Egyes böngészők HTTPS-t igényelnek a vágólap API-hoz
3. ✅ Alternatívaként válassza ki a szöveget a szövegterületen, és másolja manuálisan (Ctrl+C)

## Gyakran Ismételt Kérdések (GYIK)

### Előfordulhat-e UUID ütközés?

Elméletileg igen, de a valószínűség csillagászatilag kicsi. Ha 100 éven keresztül másodpercenként 1 milliárd v4 UUID-t generálunk, az ütközés esélye körülbelül 0,00000006%. A gyakorlatban soha nem fordul elő ütközés.

### Alkalmas-e az UUID elsődleges kulcsnak adatbázisban?

Az alkalmazási esettől függ. Az UUID ideális elosztott rendszerekhez és olyan helyzetekhez, ahol globális egyediségre van szükség. Egyszerű alkalmazásokhoz egyetlen adatbázissal az auto-increment hatékonyabb lehet.

### Biztonságosak-e az eszközzel generált UUID-k?

Igen, a Web Crypto API-t (\`crypto.getRandomValues()\`) használjuk, amely kriptográfiailag biztonságos véletlen értékeket biztosít. Minden helyileg történik a böngészőjében.

### Mi a különbség az UUID verziók között?

\- \*\*v1\*\*: Időbélyeg + MAC/véletlen – kronologikus rendezés, rosszabb adatbázis-teljesítmény - \*\*v3/v5\*\*: Hash-alapú – determinisztikus, ismert azonosítók konvertálására - \*\*v4\*\*: Véletlenszerű – legbiztonságosabb, leggyakrabban használt - \*\*v6\*\*: Átrendezett időbélyeg – jobb adatbázis-teljesítmény, mint a v1 - \*\*v7\*\*: Unix időbélyeg – legjobb adatbázis-teljesítmény + időrendi rendezés

### Melyik UUID verziót kellene használnom?

A legtöbb esetben használja a \*\*v4\*\*-et (véletlenszerű). Időrendi rendezéssel rendelkező adatbázisokhoz használja a \*\*v7\*\*-et (modern) vagy a \*\*v6\*\*-ot (standard). Ismert azonosítók (URL, DNS) konvertálásához használja a \*\*v5\*\*-öt (SHA-1).

### Használhatok UUID-t tokenekhez és API kulcsokhoz?

A v4 UUID alkalmas munkamenet-azonosítókhoz és hasonló tokenekhez. API kulcsokhoz érdemes hosszabb véletlenszerű stringeket (pl. 256 bites értékek) vagy speciális könyvtárakat használni.

### Mekkora az UUID?

Az UUID 128 bit (16 bájt). Kötőjelekkel ellátott string formátumban 36 karaktert foglal el. Kötőjelek nélkül 32 hexadecimális karaktert.

## Az UUID alternatívái

### ULID (Universally Unique Lexicographically Sortable Identifier)

- 128 bites ID (ugyanúgy, mint az UUID)
- Lexikografikusan rendezhető a létrehozás ideje szerint
- Kompaktabb ábrázolás (26 karakter a 36 helyett)
- Kis- és nagybetűkre érzéketlen base32 kódolás

**Példa:** `01ARZ3NDEKTSV4RRFFQ69G5FAV`

### NanoID

- Kisebb méretű, mint az UUID (standard szerint 21 karakter)
- URL-barát (speciális karakterek nélkül)
- Gyorsabb generálás
- Konfigurálható hossz és ábécé

**Példa:** `V1StGXR8_Z5jdHi6B-myT`

### Snowflake ID (Twitter)

- 64 bites ID (kisebb, mint az UUID)
- Időrendben rendezhető
- Tartalmazza a worker ID-t és a sorszámot
- Központosított konfigurációt igényel

**Példa:** `1234567890123456789`

## Teljesítmény és optimalizálás

### Generálási sebesség

Generátorunk képes létrehozni:

- **1 UUID:** < 1 ms
- **100 UUID:** ~10-20 ms
- **1000 UUID:** ~100-200 ms

### Teljesítmény tippek

1. **Kötegelt generálás** – Ha sok UUID-re van szüksége, generálja őket egyszerre, ne egyenként
2. **Adatbázisba mentés** – Indexelje az UUID oszlopokat a gyors keresés érdekében
3. **Tömörítés** – Tárolja az UUID-t bináris formában (16 bájt) string (36 bájt) helyett
4. **Gyorsítótárazás** – Egyes esetekben előre generálhatja és gyorsítótárazhatja az UUID-t

## Fejlesztőknek

### UUID v4 struktúrája

```
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
|        |    |    |    |
|        |    |    |    └─ 48 bit véletlen adat (node)
|        |    |    └────── 16 bit véletlen adat variánssal (clock_seq)
|        |    └─────────── 12 bit véletlen adat + 4 bit verzió (time_hi_and_version)
|        └──────────────── 16 bit véletlen adat (time_mid)
└───────────────────────── 32 bit véletlen adat (time_low)
```

- Verzió (4 bit): mindig `0100` (binárisan) = `4` (hex)
- Variáns (2-3 bit): mindig `10` (binárisan) az RFC 4122 szerint

### UUID tesztelés

```
// Jest teszt
describe('UUID Generator', () => {
  test('generates valid UUID v4', () => {
    const uuid = generateUUIDv4();
    const regex = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
    expect(regex.test(uuid)).toBe(true);
  });

  test('generates unique UUIDs', () => {
    const uuid1 = generateUUIDv4();
    const uuid2 = generateUUIDv4();
    expect(uuid1).not.toBe(uuid2);
  });
});
```

## Biztonsági szempontok

### Mit ne tegyünk az UUID-vel

❌ **Ne használjon v1 UUID-t érzékeny alkalmazásokhoz** – Időbélyeget tartalmaz, ami biztonsági kockázatot jelenthet

❌ **Ne használjon `Math.random()`\-t UUID generálására** – Nem kriptográfiailag biztonságos

❌ **Ne támaszkodjon az UUID-re az engedélyezéshez** – Az UUID kitalálható (bár extrém alacsony valószínűséggel)

❌ **Ne tárolja az UUID-t sütikben titkosítás nélkül** – Használjon aláírt sütiket vagy JWT-t

### Amit tegyünk

✅ **A legtöbb esetben használjon v4 UUID-t** – Legmagasabb entrópia és biztonság

✅ **Kombinálja az UUID-t más biztonsági intézkedésekkel** – Munkamenet-kezeléshez használjon HTTPS-t, HttpOnly sütiket és rövid lejárati időt

✅ **Validálja az UUID-t a szerveren** – Mindig ellenőrizze az UUID formátumát és verzióját

✅ **Használjon kriptográfiailag biztonságos véletlenségforrásokat** – `crypto.getRandomValues()` a böngészőben, `/dev/urandom` Linuxon

## Érdekességek

- **Lehetséges UUID v4-ek száma:** 2^122 ≈ 5.3 × 10^36 (340 undecillió)
- **Szükséges ütközés:** Az 50% ütközési valószínűség eléréséhez 2.71 × 10^18 UUID-t (2.71 kvintillió) kell generálni
- **Az összes lehetséges UUID mérete:** Ha minden UUID-t 16 bájtban tárolnánk, a teljes tér 85 zettabájtot (85 milliárd terabájtot) foglalna el
- **Eredet:** Az UUID-t a DCE (Distributed Computing Environment) részeként standardizálták 1990-ben

## Other languages

- Čeština (cs): [Generátor UUID](https://acrafto.com/cs/generator-uuid/) ([Markdown](https://acrafto.com/cs/generator-uuid/index.md))
- Slovenčina (sk): [UUID generátor](https://acrafto.com/sk/generator-uuid/) ([Markdown](https://acrafto.com/sk/generator-uuid/index.md))
- English (en): [UUID Generator](https://acrafto.com/en/uuid-generator/) ([Markdown](https://acrafto.com/en/uuid-generator/index.md))
- Deutsch (de): [UUID Generator](https://acrafto.com/de/uuid-generator/) ([Markdown](https://acrafto.com/de/uuid-generator/index.md))
- Français (fr): [Générateur UUID](https://acrafto.com/fr/generateur-uuid/) ([Markdown](https://acrafto.com/fr/generateur-uuid/index.md))
- Español (es): [Generador de UUID](https://acrafto.com/es/generador-uuid/) ([Markdown](https://acrafto.com/es/generador-uuid/index.md))
- Italiano (it): [Generatore UUID](https://acrafto.com/it/generatore-uuid/) ([Markdown](https://acrafto.com/it/generatore-uuid/index.md))
- Português (pt): [Gerador de UUID](https://acrafto.com/pt/gerador-uuid/) ([Markdown](https://acrafto.com/pt/gerador-uuid/index.md))
- Nederlands (nl): [UUID generator](https://acrafto.com/nl/uuid-generator/) ([Markdown](https://acrafto.com/nl/uuid-generator/index.md))
- Polski (pl): [Generator UUID](https://acrafto.com/pl/generator-uuid/) ([Markdown](https://acrafto.com/pl/generator-uuid/index.md))
- Română (ro): [Generator UUID](https://acrafto.com/ro/generator-uuid/) ([Markdown](https://acrafto.com/ro/generator-uuid/index.md))
- Ελληνικά (el): [Γεννήτρια UUID](https://acrafto.com/el/gennitria-uuid/) ([Markdown](https://acrafto.com/el/gennitria-uuid/index.md))
- Български (bg): [UUID генератор](https://acrafto.com/bg/uuid-generator/) ([Markdown](https://acrafto.com/bg/uuid-generator/index.md))
- Hrvatski (hr): [Generator UUID](https://acrafto.com/hr/generator-uuid/) ([Markdown](https://acrafto.com/hr/generator-uuid/index.md))
- Slovenščina (sl): [UUID generator](https://acrafto.com/sl/generator-uuid/) ([Markdown](https://acrafto.com/sl/generator-uuid/index.md))
- Eesti (et): [UUID generaator](https://acrafto.com/et/uuid-generaator/) ([Markdown](https://acrafto.com/et/uuid-generaator/index.md))
- Latviešu (lv): [UUID ģenerators](https://acrafto.com/lv/uuid-generator/) ([Markdown](https://acrafto.com/lv/uuid-generator/index.md))
- Lietuvių (lt): [UUID generatorius](https://acrafto.com/lt/uuid-generatorius/) ([Markdown](https://acrafto.com/lt/uuid-generatorius/index.md))
- Svenska (sv): [UUID-generator](https://acrafto.com/sv/uuid-generator/) ([Markdown](https://acrafto.com/sv/uuid-generator/index.md))
- Dansk (da): [UUID generator](https://acrafto.com/da/uuid-generator/) ([Markdown](https://acrafto.com/da/uuid-generator/index.md))
- Suomi (fi): [UUID-generaattori](https://acrafto.com/fi/uuid-generaattori/) ([Markdown](https://acrafto.com/fi/uuid-generaattori/index.md))
- Norsk (no): [UUID-generator](https://acrafto.com/no/uuid-generator/) ([Markdown](https://acrafto.com/no/uuid-generator/index.md))
- Українська (uk): [Генератор UUID](https://acrafto.com/uk/henerator-uuid/) ([Markdown](https://acrafto.com/uk/henerator-uuid/index.md))
- Русский (ru): [Генератор UUID](https://acrafto.com/ru/generator-uuid/) ([Markdown](https://acrafto.com/ru/generator-uuid/index.md))
- Српски (sr): [UUID generator](https://acrafto.com/sr/uuid-generator/) ([Markdown](https://acrafto.com/sr/uuid-generator/index.md))
- Македонски (mk): [UUID генератор](https://acrafto.com/mk/uuid-generator/) ([Markdown](https://acrafto.com/mk/uuid-generator/index.md))
- Bosanski (bs): [Generator UUID-a](https://acrafto.com/bs/generator-uuid/) ([Markdown](https://acrafto.com/bs/generator-uuid/index.md))
- Shqip (sq): [Gjenerator UUID](https://acrafto.com/sq/gjenerator-uuid/) ([Markdown](https://acrafto.com/sq/gjenerator-uuid/index.md))
- Türkçe (tr): [UUID oluşturucu](https://acrafto.com/tr/uuid-uretici/) ([Markdown](https://acrafto.com/tr/uuid-uretici/index.md))
- 日本語 (ja): [UUID生成ツール](https://acrafto.com/ja/uuid-generator/) ([Markdown](https://acrafto.com/ja/uuid-generator/index.md))
- 한국어 (ko): [UUID 생성기](https://acrafto.com/ko/uuid-generator/) ([Markdown](https://acrafto.com/ko/uuid-generator/index.md))
- العربية (ar): [مولد UUID](https://acrafto.com/ar/uuid-generator/) ([Markdown](https://acrafto.com/ar/uuid-generator/index.md))
- हिन्दी (hi): [UUID जनरेटर](https://acrafto.com/hi/uuid-generator/) ([Markdown](https://acrafto.com/hi/uuid-generator/index.md))
- Bahasa Indonesia (id): [Generator UUID](https://acrafto.com/id/generator-uuid/) ([Markdown](https://acrafto.com/id/generator-uuid/index.md))
- Tiếng Việt (vi): [Trình tạo UUID](https://acrafto.com/vi/uuid-generator/) ([Markdown](https://acrafto.com/vi/uuid-generator/index.md))
- ไทย (th): [สร้าง UUID](https://acrafto.com/th/uuid-generator/) ([Markdown](https://acrafto.com/th/uuid-generator/index.md))
- עברית (he): [מחולל UUID](https://acrafto.com/he/uuid-generator/) ([Markdown](https://acrafto.com/he/uuid-generator/index.md))
