# UUID generator

> Generišite UUID (univerzalno jedinstveni identifikator) online besplatno. Podržava sve verzije (v1, v3-v7) i generisanje hiljada UUID-ova odjednom.

URL: https://acrafto.com/sr/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.

## Šta je UUID?

UUID (Universally Unique Identifier) je 128-bitni identifikator koji se koristi u računarskim sistemima za jedinstvenu identifikaciju informacija. UUID je standardizovan prema RFC 4122 i, zahvaljujući svojoj ogromnoj entropiji, garantuje praktično nultu verovatnoću kolizije – to znači da će dva nezavisno generisana UUID-a biti gotovo sigurno jedinstvena.

UUID ima standardni format: `xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx`, gde je svaki `x` heksadecimalna cifra (0-9, a-f), `M` označava verziju UUID-a, a `N` označava varijantu.

## UUID Verzije

### UUID v1 (Vremenska oznaka + MAC adresa)

UUID v1 je zasnovan na trenutnoj vremenskoj oznaci (timestamp) i nasumičnoj vrednosti (u pretraživaču umesto MAC adrese). Koristi intervale od 100 nanosekundi od 15. oktobra 1582. (Gregorijanski kalendar).

**Upotreba:**

- Situacije kada je potrebno hronološko sortiranje UUID-ova
- Debagovanje i logovanje (UUID sadrži informacije o vremenu kreiranja)
- Distribuirani sistemi sa vremenskom sinhronizacijom

**Primer:** `6ba7b810-9dad-11d1-80b4-00c04fd430c8`

**Prednosti:**

- UUID-ovi se mogu hronološki sortirati prema vremenu kreiranja
- Korisno za reviziju i debagovanje
- Sadrži informaciju o vremenskoj oznaci

**Nedostaci:**

- Potencijalni bezbednosni rizik – sadrži vremensku oznaku
- U pretraživaču ne sadrži stvarnu MAC adresu (zamenjena nasumičnom vrednošću)
- Loša lokacija u bazi podataka (vremenska oznaka je u niskim bitovima)

### UUID v3 (MD5 heš)

UUID v3 se generiše korišćenjem MD5 heša imenskog prostora UUID-a i imena. Deterministički – isti imenski prostor + ime uvek kreiraju isti UUID.

**Upotreba:**

- Konverzija URL-ova, DNS imena ili drugih identifikatora u UUID
- Situacije kada su vam potrebni reproduktivni UUID-ovi
- Mapiranje između različitih sistema identifikacije

**Primer:** `a3bb189e-8bf9-3888-9912-ace4e6543002`

**Prednosti:**

- Deterministički (isti ulaz = isti izlaz)
- Idealan za konverziju poznatih identifikatora
- Nema kolizije za različite ulaze

**Nedostaci:**

- MD5 je zastareli algoritam (preferirajte v5)
- Zahteva imenski prostor i ime
- Nije moguće povratiti originalni ulaz

### UUID v4 (Nasumično) - PREPORUČENO

Najčešće korišćena verzija UUID-a. UUID v4 se generiše potpuno nasumično korišćenjem kriptografski sigurnog generatora nasumičnih brojeva (`crypto.getRandomValues()`).

**Upotreba:**

- Primarni ključevi baze podataka
- Identifikatori sesija (session IDs)
- Jedinstvena imena datoteka
- API tokeni
- Opšte namene, gde vam je potreban zagarantovano jedinstven ID

**Primer:** `f47ac10b-58cc-4372-a567-0e02b2c3d479`

**Prednosti:**

- Maksimalna entropija i bezbednost
- Nema zavisnosti od vremena ili sistemskih parametara
- Najjednostavnija implementacija

**Verovatnoća kolizije:** Prilikom generisanja 1 milijarde UUID-ova u sekundi tokom 100 godina, šansa za koliziju je približno 0.00000006%.

### UUID v5 (SHA-1 heš)

UUID v5 je isti kao v3, ali koristi SHA-1 umesto MD5. Modernija i sigurnija alternativa v3.

**Upotreba:**

- Isto kao v3, ali sa boljom bezbednošću
- Preferira se u odnosu na v3 za nove projekte
- Generisanje UUID-a iz URL-ova, DNS imena, OID-a, X.500 DN-a

**Primer:** `886313e1-3b8a-5372-9b90-0c9aee199e5d`

**Prednosti:**

- Deterministički
- SHA-1 je robusniji od MD5
- Pogodan za mapiranje između sistema

**Nedostaci:**

- SHA-1 se takođe smatra zastarelim (ali je i dalje sigurniji od MD5)
- Zahteva imenski prostor i ime

### UUID v6 (Sortirana vremenska oznaka)

UUID v6 je poboljšana verzija v1 sa preuređenim vremenskim bitovima za bolje indeksiranje baze podataka. Dizajniran je za rešavanje problema lokacije u bazama podataka.

**Upotreba:**

- Primarni ključevi baze podataka sa vremenskim sortiranjem
- Sistemi koji zahtevaju hronološko sortiranje i performanse baze podataka
- Modernija alternativa v1

**Primer:** `1ec9414c-232a-6b00-b3c8-9e6bdeced846`

**Prednosti:**

- Bolja lokacija u bazi podataka od v1 (vremenska oznaka u visokim bitovima)
- Hronološko sortiranje
- Kompatibilno sa UUID standardom

**Nedostaci:**

- Manje se koristi od v1/v4
- I dalje sadrži vremenske informacije (bezbednosni rizik)

### UUID v7 (Unix vremenska oznaka)

UUID v7 koristi Unix vremensku oznaku (milisekunde od 1970) + nasumične bitove. Najnovija verzija UUID-a sa najboljom lokacijom u bazi podataka.

**Upotreba:**

- Moderni primarni ključevi baze podataka
- Sistemi koji zahtevaju performanse + vremensko sortiranje
- Zamena za v1/v6 u novim projektima

**Primer:** `017f22e2-79b0-7cc3-98c4-dc0c0c07398f`

**Prednosti:**

- Najbolja lokacija u bazi podataka od svih verzija
- Unix vremenska oznaka je standardna
- Kombinuje prednosti nasumičnosti i vremenskog sortiranja

**Nedostaci:**

- Relativno nova specifikacija (RFC 4122bis)
- Manje podržana u starijim sistemima

## Koju UUID verziju koristiti?

### Vodič za odluku

**Potrebna vam je maksimalna bezbednost i nasumičnost?** → Koristite **UUID v4** (najčešći izbor)

**Potrebno vam je vremensko sortiranje i performanse baze podataka?** → Koristite **UUID v7** (moderno) ili **UUID v6** (standardno)

**Potrebni su vam reproduktivni UUID-ovi iz postojećih identifikatora?** → Koristite **UUID v5** (SHA-1) ili **UUID v3** (MD5, zastarelo)

**Potrebna vam je vremenska oznaka i trag revizije?** → Koristite **UUID v1** (zastarelo, lošije performanse baze podataka)

### Baze podataka

**Za nove projekte:** UUID v7 ili v4

- **v7** je idealan za vremensko sortiranje + performanse
- **v4** za maksimalnu nasumičnost bez vremenskih informacija

**Za starije sisteme:** UUID v1 ili v6

- **v6** ima bolju lokaciju u bazi podataka od v1
- **v1** je široko podržan

**Prednosti UUID-a kao primarnog ključa:**

- **Globalna jedinstvenost** – Možete povezivati podatke iz različitih baza podataka bez konflikta
- **Bezbednost** – Za razliku od sekvencijalnih ID-ova (1, 2, 3…), sledeće vrednosti se ne mogu pogoditi
- **Distribuirani sistemi** – UUID-ovi se mogu generisati nezavisno na više servera bez koordinacije
- **Spajanje baza podataka** – Prilikom spajanja dve baze podataka ne dolazi do konflikta

**Nedostaci:**

- Veća veličina (16 bajtova nasuprot 4-8 bajtova za integer)
- Sporije indeksiranje u nekim bazama podataka (koristite v6/v7 za bolje performanse)
- Manje čitljivo za čoveka

### API i veb servisi

- **REST API** – Jedinstveni identifikatori za resurse
- **GraphQL** – Globalni identifikatori za čvorove
- **Webhookovi** – Praćenje zahteva i odgovora
- **Tokeni** – ID-ovi sesija, tokeni za osvežavanje

### Fajlovi i skladištenje

- **Imena datoteka** – Sprečavanje kolizija prilikom otpremanja
- **S3/Cloud Storage** – Jedinstvene putanje do objekata
- **Keš ključevi** – Identifikatori u keš sistemima

### Frontend aplikacije

- **React/Vue komponente** – Jedinstveni ključevi za liste
- **Privremeni ID-ovi** – ID-ovi pre čuvanja u bazu podataka
- **Lokalno skladištenje** – Ključevi za sačuvane podatke
- **Offline-first aplikacije** – Generisanje ID-ova bez povezivanja sa serverom

## Napredne funkcije generatora

### Generisanje UUID-a sa prilagođenim vremenom

Za verzije zasnovane na vremenu (v1, v6, v7) možete odabrati bilo koju vremensku oznaku pomoću date-time pickera. Ovo je korisno za:

**Testiranje:**

- Simulacija UUID-ova kreiranih u prošlosti
- Testiranje vremenskog sortiranja u bazama podataka
- Reprodukcija UUID-ova za debagovanje

**Migracija podataka:**

- Generisanje UUID-ova sa istorijskim vremenskim oznakama
- Popunjavanje podataka sa ispravnim timestamp vrednostima
- Uvoz podataka iz različitih vremenskih perioda

**Revizija i usklađenost:**

- Rekonstrukcija UUID-ova prema vremenu nastanka zapisa
- Retroaktivno generisanje identifikatora

**Primer upotrebe:**

1. Izaberite verziju v1, v6 ili v7
2. Podesite datum i vreme pomoću date-time pickera
3. Generišite UUID sa vašom prilagođenom vremenskom oznakom

### Heš-bazirani UUID (v3, v5)

Za determinističke UUID-ove možete koristiti verzije v3 (MD5) ili v5 (SHA-1):

**Kako koristiti:**

1. Izaberite imenski prostor prema tipu vašeg identifikatora
2. Unesite naziv/vrednost
3. Generišite UUID

**Primeri:**

| Imenski prostor | Naziv (unos) | Upotreba |
| --- | --- | --- |
| DNS | `example.com` | Konverzija imena domena u UUID |
| DNS | `google.com` | Svaki veb sajt ima jedinstven UUID |
| URL | `https://example.com/page` | Konverzija URL-a u UUID |
| URL | `https://api.example.com/users/123` | API endpoint kao UUID |
| OID | `1.3.6.1.4.1.343` | Object Identifier u UUID |
| X.500 | `CN=John Doe,O=Company` | Distinguished Name u UUID |

**Važne karakteristike:**

- ✅ **Deterministički**: Isti ulaz = uvek isti UUID
- ✅ **Reproduktivni**: Možete ponovo kreirati UUID bilo kada
- ✅ **Konzistentni**: Isti UUID u različitim sistemima
- ❌ **Nije moguće dekodirati**: Iz UUID-a nije moguće dobiti originalni naziv nazad
- ℹ️ **Jedan UUID**: Za v3/v5 se uvek generiše samo jedan UUID (isti ulaz = isti izlaz)

**Praktična upotreba:**

```
// Primer: Konverzija URL-a u UUID v5
Namespace: URL
Naziv: https://example.com/api/users/123
Rezultat: 886313e1-3b8a-5372-9b90-0c9aee199e5d

// Isti ulaz = uvek isti UUID
Namespace: DNS
Naziv: google.com
Rezultat: uvek isti UUID za google.com
```

## Kako bezbedno koristiti UUID?

### Kriptografska bezbednost

Naš generator koristi `crypto.getRandomValues()`, što je kriptografski siguran generator nasumičnih brojeva. Za razliku od `Math.random()`, koji je predvidljiv i nepogodan za bezbednosne svrhe, `crypto.getRandomValues()` pruža pravu entropiju pogodnu za:

- Generisanje bezbednosnih tokena
- ID-ove sesija
- API ključeve
- Kriptografske aplikacije

### Poređenje UUID verzija

| Verzija | Osnova | Kolizija | Vremensko sortiranje | Performanse DB | Upotreba |
| --- | --- | --- | --- | --- | --- |
| v1 | Vremenska oznaka + MAC | Niska | ✅ Da | ❌ Lošije | Zastarelo, revizija |
| v3 | MD5 heš | Nema (determinističko) | ❌ Ne | ⚠️ Srednje | Konverzije (zastarelo) |
| v4 | Nasumično | Izuzetno niska | ❌ Ne | ⚠️ Srednje | Opšta upotreba |
| v5 | SHA-1 heš | Nema (determinističko) | ❌ Ne | ⚠️ Srednje | Konverzije (preporučeno) |
| v6 | Sortirana vremenska oznaka | Niska | ✅ Da | ✅ Bolje | Moderne DB sa vremenom |
| v7 | Unix vremenska oznaka | Niska | ✅ Da | ✅ Najbolje | Novi projekti |

### UUID nasuprot drugim identifikatorima

| Tip | Veličina | Kolizija | Vremensko sortiranje | Upotreba |
| --- | --- | --- | --- | --- |
| Auto-increment ID | 4-8 bajtova | Garantovano jedinstveno unutar tabele | ❌ | Jednostavne aplikacije, lokalne DB |
| UUID v4 | 16 bajtova | Praktično nemoguća | ❌ | Distribuirani sistemi, API |
| UUID v7 | 16 bajtova | Praktično nemoguća | ✅ | Moderne DB sa performansama |
| ULID | 16 bajtova | Praktično nemoguća | ✅ | UUID + leksikografsko sortiranje |
| Snowflake ID | 8 bajtova | Garantovano jedinstveno uz pravilnu konfiguraciju | ✅ | Twitter, distribuirani sistemi |
| NanoID | Konfigurabilna | Zavisi od dužine | ❌ | URL-friendly ID-ovi |

## Implementacija u različitim jezicima

### JavaScript/TypeScript

```
// UUID v4 - Najjednostavniji način (moderni pretraživači)
const uuid = crypto.randomUUID();

// UUID v4 - Ručna implementacija
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 - Preporučeno za baze podataka
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();
```

## Najbolje prakse

### Čuvanje UUID-a u bazi podataka

**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
);
```

**Savet:** U MySQL-u čuvajte UUID kao `BINARY(16)` umesto `CHAR(36)` radi uštede prostora i bržeg indeksiranja.

### Validacija UUID-a

```
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);
}
```

### Konverzija UUID-a

```
// Uklanjanje crtica
const compact = uuid.replace(/-/g, '');

// Dodavanje crtica nazad
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('-');
}
```

## Rešavanje problema (Troubleshooting)

### UUID v3/v5 ne radi

**Problem:** Nakon odabira v3 ili v5, ništa se ne generiše

**Rešenje:**

1. ✅ Proverite da ste **popunili polje “Naziv”** - obavezno je!
2. ✅ Izaberite ispravan imenski prostor prema tipu vašeg unosa
3. ✅ Primeri validnih unosa:
   - DNS: `example.com`, `google.com`
   - URL: `https://example.com/page`
   - Bilo koji tekst: `moja-aplikacija-v1`

**Savet:** Pokušajte prvo sa jednostavnom vrednošću kao što je `test` i imenski prostor DNS.

### Vremenski UUID (v1, v6, v7) ima čudno vreme

**Problem:** Generisani UUID ima neočekivani timestamp

**Rešenje:**

1. ✅ Proverite date-time picker - da li je podešeno ispravno vreme?
2. ✅ Date-time picker koristi vašu lokalnu vremensku zonu
3. ✅ Ostavite date-time picker praznim za trenutno vreme

### UUID se ne može kopirati

**Problem:** Dugme “Kopiraj sve” ne radi

**Rešenje:**

1. ✅ Proverite da ste generisali UUID (nisu prazni)
2. ✅ Neki pretraživači zahtevaju HTTPS za clipboard API
3. ✅ Alternativno, odaberite tekst u textarea i kopirajte ručno (Ctrl+C)

## Česta pitanja (FAQ)

### Može li doći do kolizije UUID-a?

Teoretski da, ali verovatnoća je astronomski mala. Prilikom generisanja 1 milijarde UUID v4 u sekundi tokom 100 godina, šansa za koliziju je približno 0.00000006%. U praksi se kolizija nikada neće dogoditi.

### Da li je UUID pogodan kao primarni ključ u bazi podataka?

Zavisi od slučaja upotrebe. UUID je idealan za distribuirane sisteme i situacije kada vam je potrebna globalna jedinstvenost. Za jednostavne aplikacije sa jednom bazom podataka, auto-increment može biti efikasniji.

### Jesu li UUID-ovi generisani ovim alatom bezbedni?

Da, koristimo Web Crypto API (\`crypto.getRandomValues()\`), koje pruža kriptografski sigurne nasumične vrednosti. Sve se dešava lokalno u vašem pretraživaču.

### Koja je razlika između UUID verzija?

\- \*\*v1\*\*: Vremenska oznaka + MAC/nasumično - hronološko sortiranje, lošije performanse baze podataka - \*\*v3/v5\*\*: Heš-bazirano - determinističko, za konverziju poznatih identifikatora - \*\*v4\*\*: Nasumično - najsigurnije, najčešće korišćeno - \*\*v6\*\*: Preuređena vremenska oznaka - bolje performanse baze podataka od v1 - \*\*v7\*\*: Unix vremenska oznaka - najbolje performanse baze podataka + vremensko sortiranje

### Koju verziju UUID-a bih trebao koristiti?

Za većinu slučajeva koristite \*\*v4\*\* (nasumično). Za baze podataka sa vremenskim sortiranjem koristite \*\*v7\*\* (moderno) ili \*\*v6\*\* (standardno). Za konverziju poznatih identifikatora (URL, DNS) koristite \*\*v5\*\* (SHA-1).

### Mogu li koristiti UUID za tokene i API ključeve?

UUID v4 je pogodan za ID-ove sesija i slične tokene. Za API ključeve razmislite o korišćenju dužih nasumičnih stringova (npr. 256-bitne vrednosti) ili specijalizovanih biblioteka.

### Koliko su veliki UUID-ovi?

UUID ima 128 bitova (16 bajtova). U string formatu sa crticama zauzima 36 znakova. Bez crtica 32 heksadecimalna znaka.

## Alternative za UUID

### ULID (Universally Unique Lexicographically Sortable Identifier)

- 128-bitni ID (isto kao UUID)
- Leksikografski se može sortirati prema vremenu kreiranja
- Kompaktnija reprezentacija (26 znakova umesto 36)
- Base32 kodiranje neosetljivo na velika i mala slova

**Primer:** `01ARZ3NDEKTSV4RRFFQ69G5FAV`

### NanoID

- Manja veličina od UUID-a (standardno 21 znak)
- URL-friendly (bez specijalnih znakova)
- Brže generisanje
- Konfigurabilna dužina i abeceda

**Primer:** `V1StGXR8_Z5jdHi6B-myT`

### Snowflake ID (Twitter)

- 64-bitni ID (manji od UUID-a)
- Vremenski se može sortirati
- Sadrži ID radnika i redni broj
- Zahteva centralizovanu konfiguraciju

**Primer:** `1234567890123456789`

## Performanse i optimizacija

### Brzina generisanja

Naš generator može generisati:

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

### Saveti za performanse

1. **Grupno generisanje** – Ako vam je potrebno mnogo UUID-ova, generišite ih odjednom umesto jedan po jedan
2. **Čuvanje u DB** – Indeksirajte UUID kolone za brzo pretraživanje
3. **Kompresija** – Čuvajte UUID u binarnom obliku (16 bajtova) umesto stringa (36 bajtova)
4. **Keširanje** – U nekim slučajevima možete pregenerisati i keširati UUID-ove

## Za programere

### Struktura UUID v4

```
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
|        |    |    |    |
|        |    |    |    └─ 48 bitova nasumičnih podataka (čvor)
|        |    |    └────── 16 bitova nasumičnih podataka sa varijantom (clock_seq)
|        |    └─────────── 12 bitova nasumičnih podataka + 4 bita verzije (time_hi_and_version)
|        └──────────────── 16 bitova nasumičnih podataka (time_mid)
└───────────────────────── 32 bita nasumičnih podataka (time_low)
```

- Verzija (4 bita): uvek `0100` (binarno) = `4` (heksadecimalno)
- Varijanta (2-3 bita): uvek `10` (binarno) za RFC 4122

### Testiranje UUID-a

```
// Jest test
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);
  });
});
```

## Bezbednosni aspekti

### Šta ne raditi sa UUID-om

❌ **Ne koristite UUID v1 za osetljive aplikacije** – Sadrži vremensku oznaku, što može biti bezbednosni rizik

❌ **Ne koristite `Math.random()` za generisanje UUID-ova** – Nije kriptografski sigurno

❌ **Ne oslanjajte se na UUID za autorizaciju** – UUID se može pogoditi (iako sa izuzetno malom verovatnoćom)

❌ **Ne čuvajte UUID u kolačićima bez šifrovanja** – Koristite potpisane kolačiće ili JWT

### Šta raditi

✅ **Koristite UUID v4 za većinu slučajeva** – Najveća entropija i bezbednost

✅ **Kombinujte UUID sa drugim bezbednosnim merama** – Za upravljanje sesijama koristite HTTPS, HttpOnly kolačiće i kratak period isteka

✅ **Validirajte UUID na serveru** – Uvek proverite format i verziju UUID-a

✅ **Koristite kriptografski sigurne izvore nasumičnosti** – `crypto.getRandomValues()` u pretraživaču, `/dev/urandom` na Linuxu

## Zanimljivosti

- **Broj mogućih UUID v4:** 2^122 ≈ 5.3 × 10^36 (340 undeciliona)
- **Potrebna kolizija:** Za 50% šanse za koliziju morate generisati 2.71 × 10^18 UUID-ova (2.71 kvintiliona)
- **Veličina svih mogućih UUID-ova:** Kada bismo svaki UUID sačuvali kao 16 bajtova, ceo prostor bi zauzeo 85 zetabajta (85 milijardi terabajta)
- **Poreklo:** UUID je standardizovan kao deo DCE (Distributed Computing Environment) 1990. godine

## 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))
- Magyar (hu): [UUID generátor](https://acrafto.com/hu/uuid-generator/) ([Markdown](https://acrafto.com/hu/uuid-generator/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))
- Македонски (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))
