# UUID generator

> Ustvarite UUID (edinstveni identifikator) na spletu brezplačno. Podpira vse različice UUID (v1, v3-v7) in generiranje več tisoč ID-jev hkrati.

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

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.

## Kaj je UUID?

UUID (Universally Unique Identifier) je 128-bitni identifikator, ki se uporablja v računalniških sistemih za edinstveno identifikacijo informacij. UUID je standardiziran v skladu z RFC 4122 in zaradi svoje ogromne entropije zagotavlja praktično nično verjetnost kolizije – to pomeni, da bosta dva neodvisno generirana UUID-ja skoraj zagotovo unikatna.

UUID ima standardno obliko: `xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx`, kjer je vsak `x` heksadecimalna številka (0-9, a-f), `M` označuje različico UUID in `N` označuje varianto.

## Različice UUID

### UUID v1 (Časovni žig + MAC naslov)

UUID v1 je zasnovan na trenutnem časovnem žigu (timestamp) in naključni vrednosti (v brskalniku namesto naslova MAC). Uporablja 100-nanosekundne intervale od 15. oktobra 1582 (Gregorijanski koledar).

**Uporaba:**

- Situacije, ko potrebujete kronološko razvrščanje UUID-jev
- Razhroščevanje in beleženje (UUID vsebuje informacije o času ustvarjanja)
- Distribuirani sistemi s časovno sinhronizacijo

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

**Prednosti:**

- UUID-je je mogoče kronološko razvrščati po času ustvarjanja
- Uporabno za revizijo in razhroščevanje
- Vsebuje informacije o časovnem žigu

**Slabosti:**

- Potencialno varnostno tveganje – vsebuje časovni žig
- V brskalniku ne vsebuje dejanskega naslova MAC (nadomeščen z naključno vrednostjo)
- Slaba lokacija PB (časovni žig je v nizko-vrstnih bitih)

### UUID v3 (MD5 zgoščena vrednost)

UUID v3 se generira z uporabo MD5 zgoščene vrednosti imenskega prostora UUID in imena. Deterministicno – isti imenski prostor + ime vedno ustvarita isti UUID.

**Uporaba:**

- Pretvorba URL-jev, imen DNS ali drugih identifikatorjev v UUID
- Situacije, ko potrebujete ponovljivo UUID
- Preslikava med različnimi identifikacijskimi sistemi

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

**Prednosti:**

- Deterministicno (enak vnos = enak izhod)
- Idealno za pretvorbo znanih identifikatorjev
- Brez kolizij za različne vnose

**Slabosti:**

- MD5 je zastarel algoritem (raje uporabite v5)
- Zahteva imenski prostor in ime
- Prvotnega vnosa ni mogoče pridobiti nazaj

### UUID v4 (Naključno) - PRIPOROČENO

Najpogosteje uporabljena različica UUID. UUID v4 se generira izključno naključno z uporabo kriptografsko varnega generatorja naključnih števil (`crypto.getRandomValues()`).

**Uporaba:**

- Primarni ključi podatkovnih baz
- Identifikatorji sej (session IDs)
- Edinstvena imena datotek
- API žetoni
- Splošni nameni, kjer potrebujete zagotovljeno edinstven ID

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

**Prednosti:**

- Maksimalna entropija in varnost
- Brez odvisnosti od časa ali sistemskih parametrov
- Najenostavnejša implementacija

**Verjetnost kolizije:** Pri generiranju 1 milijarde UUID-jev na sekundo v obdobju 100 let je verjetnost kolizije približno 0,00000006%.

### UUID v5 (SHA-1 zgoščena vrednost)

UUID v5 je enak kot v3, vendar uporablja SHA-1 namesto MD5. Modernejša in varnejša alternativa v3.

**Uporaba:**

- Enako kot v3, vendar z boljšo varnostjo
- Prednost pred v3 za nove projekte
- Generiranje UUID-jev iz URL-jev, imen DNS, OID, X.500 DN

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

**Prednosti:**

- Deterministicno
- SHA-1 je robustnejši od MD5
- Primerno za preslikavo med sistemi

**Slabosti:**

- SHA-1 prav tako velja za zastarelo (vendar še vedno varnejše od MD5)
- Zahteva imenski prostor in ime

### UUID v6 (Urejen časovni žig)

UUID v6 je izboljšana različica v1 s preurejenimi časovnimi biti za boljše indeksiranje v podatkovnih bazah. Zasnovano za reševanje problemov z lokalnostjo v podatkovnih bazah.

**Uporaba:**

- Primarni ključi podatkovnih baz s časovnim razvrščanjem
- Sistemi, ki zahtevajo kronološko razvrščanje in zmogljivost PB
- Modernejša alternativa v1

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

**Prednosti:**

- Boljša lokacija PB kot v1 (časovni žig v visoko-vrstnih bitih)
- Kronološko razvrščanje
- Združljivo s standardom UUID

**Slabosti:**

- Manj uporabljano kot v1/v4
- Še vedno vsebuje časovne informacije (varnostno tveganje)

### UUID v7 (Unix časovni žig)

UUID v7 uporablja Unix časovni žig (milisekunde od leta 1970) + naključne bite. Najnovejša različica UUID z najboljšo lokacijo PB.

**Uporaba:**

- Sodobni primarni ključi podatkovnih baz
- Sistemi, ki zahtevajo zmogljivost + časovno razvrščanje
- Nadomestek za v1/v6 v novih projektih

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

**Prednosti:**

- Najboljša lokacija PB med vsemi različicami
- Unix časovni žig je standarden
- Združuje prednosti naključnosti in časovnega razvrščanja

**Slabosti:**

- Relativno nova specifikacija (RFC 4122bis)
- Manj podprta v starejših sistemih

## Katero različico UUID uporabiti?

### Vodnik za odločanje

**Potrebujete maksimalno varnost in naključnost?** → Uporabite **UUID v4** (najpogostejša izbira)

**Potrebujete časovno razvrščanje in zmogljivost PB?** → Uporabite **UUID v7** (sodoben) ali **UUID v6** (standarden)

**Potrebujete ponovljiv UUID iz obstoječih identifikatorjev?** → Uporabite **UUID v5** (SHA-1) ali **UUID v3** (MD5, starejši)

**Potrebujete časovni žig in revizijsko sled?** → Uporabite **UUID v1** (starejši, slabša zmogljivost PB)

### Podatkovne baze

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

- **v7** je idealen za časovno razvrščanje + zmogljivost
- **v4** za maksimalno naključnost brez časovnih informacij

**Za starejše sisteme:** UUID v1 ali v6

- **v6** ima boljšo lokacijo PB kot v1
- **v1** je široko podprt

**Prednosti UUID kot primarnega ključa:**

- **Globalna edinstvenost** – Podatke iz različnih podatkovnih baz lahko združite brez konflikta
- **Varnost** – Za razliko od zaporednih ID-jev (1, 2, 3…) ni mogoče ugibati naslednjih vrednosti
- **Distribuirani sistemi** – UUID-je je mogoče generirati neodvisno na več strežnikih brez koordinacije
- **Združevanje podatkovnih baz** – Pri združitvi dveh podatkovnih baz ne pride do konfliktov

**Slabosti:**

- Večja velikost (16 bajtov proti 4-8 bajtom za celo število)
- Počasnejše indeksiranje v nekaterih podatkovnih bazah (za boljšo zmogljivost uporabite v6/v7)
- Manj berljivo za človeka

### API in spletne storitve

- **REST API** – Edinstveni identifikatorji za vire
- **GraphQL** – Globalni identifikatorji za vozlišča
- **Webhooki** – Sledenje zahtevam in odgovorom
- **Žetoni** – ID-ji sej, žetoni za osvežitev

### Datoteke in shranjevanje

- **Imena datotek** – Preprečevanje kolizij pri nalaganju
- **S3/Cloud Storage** – Edinstvene poti do objektov
- **Ključi predpomnilnika** – Identifikatorji v sistemih predpomnilnika

### Frontend aplikacije

- **React/Vue komponente** – Edinstveni ključi za sezname
- **Začasni ID-ji** – ID-ji pred shranjevanjem v podatkovno bazo
- **Lokalno shranjevanje** – Ključi za shranjene podatke
- **Aplikacije, ki delujejo najprej brez povezave** – Generiranje ID-jev brez povezave s strežnikom

## Napredne funkcije generatorja

### Generiranje UUID z lastnim časom

Za časovno zasnovane različice (v1, v6, v7) lahko izberete poljuben časovni žig z uporabo izbirnika datuma in časa. To je uporabno za:

**Testiranje:**

- Simulacija UUID-jev, ustvarjenih v preteklosti
- Testiranje časovnega razvrščanja v podatkovnih bazah
- Reprodukcija UUID-jev za razhroščevanje

**Migracija podatkov:**

- Generiranje UUID-jev z zgodovinskimi časovnimi žigi
- Dopunjavanje podatkov s pravilnimi vrednostmi časovnih žigov
- Uvoz podatkov iz različnih časovnih obdobij

**Revizija in skladnost:**

- Rekonstrukcija UUID-jev glede na čas nastanka zapisa
- Retroaktivno generiranje identifikatorjev

**Primer uporabe:**

1. Izberite različico v1, v6 ali v7
2. Nastavite datum in čas z uporabo izbirnika datuma in časa
3. Ustvarite UUID z lastnim časovnim žigom

### UUID na osnovi zgoščene vrednosti (v3, v5)

Za deterministične UUID lahko uporabite različici v3 (MD5) ali v5 (SHA-1):

**Kako uporabiti:**

1. Izberite imenski prostor glede na vrsto vašega identifikatorja
2. Vnesite ime/vrednost
3. Ustvarite UUID

**Primeri:**

| Imenski prostor | Ime (vnos) | Uporaba |
| --- | --- | --- |
| DNS | `example.com` | Pretvorba imena domene v UUID |
| DNS | `google.com` | Vsako spletno mesto ima edinstven UUID |
| URL | `https://example.com/page` | Pretvorba URL v UUID |
| URL | `https://api.example.com/users/123` | Končna točka API kot UUID |
| OID | `1.3.6.1.4.1.343` | Objektni identifikator v UUID |
| X.500 | `CN=John Doe,O=Company` | Razlikovalno ime v UUID |

**Pomembne lastnosti:**

- ✅ **Deterministično**: Enak vnos = vedno enak UUID
- ✅ **Ponovljivo**: UUID lahko kadar koli znova ustvarite
- ✅ **Konsistentno**: Enak UUID v različnih sistemih
- ❌ **Ni mogoče dekodirati**: Iz UUID ni mogoče pridobiti prvotnega imena
- ℹ️ **En UUID**: Za v3/v5 se vedno generira samo en UUID (enak vnos = enak izhod)

**Praktična uporaba:**

```
// Primer: Pretvorba URL v UUID v5
Namespace: URL
Ime: https://example.com/api/users/123
Rezultat: 886313e1-3b8a-5372-9b90-0c9aee199e5d

// Enak vnos = vedno enak UUID
Namespace: DNS
Ime: google.com
Rezultat: vedno enak UUID za google.com
```

## Kako varno uporabljati UUID?

### Kriptografska varnost

Naš generator uporablja `crypto.getRandomValues()`, ki je kriptografsko varen generator naključnih števil. Za razliko od `Math.random()`, ki je predvidljiv in neprimeren za varnostne namene, `crypto.getRandomValues()` zagotavlja resnično entropijo, primerno za:

- Generiranje varnostnih žetonov
- ID-ji sej
- API ključi
- Kriptografske aplikacije

### Primerjava različic UUID

| Različica | Osnova | Kolizije | Časovno razvrščanje | Zmogljivost PB | Uporaba |
| --- | --- | --- | --- | --- | --- |
| v1 | Časovni žig + MAC | Nizka | ✅ Da | ❌ Slabše | Starejši, revizija |
| v3 | MD5 zgoščena vrednost | Ni (deterministicno) | ❌ Ne | ⚠️ Srednja | Pretvorbe (starejši) |
| v4 | Naključno | Izjemno nizka | ❌ Ne | ⚠️ Srednja | Splošna uporaba |
| v5 | SHA-1 zgoščena vrednost | Ni (deterministicno) | ❌ Ne | ⚠️ Srednja | Pretvorbe (priporočeno) |
| v6 | Urejen časovni žig | Nizka | ✅ Da | ✅ Boljše | Sodobna PB s časom |
| v7 | Unix časovni žig | Nizka | ✅ Da | ✅ Najboljše | Novi projekti |

### UUID proti drugim identifikatorjem

| Vrsta | Velikost | Kolizije | Časovno razvrščanje | Uporaba |
| --- | --- | --- | --- | --- |
| Auto-increment ID | 4-8 bajtov | Zagotovljeno edinstven znotraj tabele | ❌ | Enostavne aplikacije, lokalna PB |
| UUID v4 | 16 bajtov | Praktično nemogoča | ❌ | Distribuirani sistemi, API |
| UUID v7 | 16 bajtov | Praktično nemogoča | ✅ | Sodobna PB z zmogljivostjo |
| ULID | 16 bajtov | Praktično nemogoča | ✅ | UUID + leksikografsko razvrščanje |
| Snowflake ID | 8 bajtov | Zagotovljeno edinstven ob pravilni konfiguraciji | ✅ | Twitter, distribuirani sistemi |
| NanoID | Nastavljiva | Odvisno od dolžine | ❌ | URL-prijazni ID-ji |

## Implementacija v različnih jezikih

### JavaScript/TypeScript

```
// UUID v4 - Najenostavnejši način (sodobni brskalniki)
const uuid = crypto.randomUUID();

// UUID v4 - Roč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 - Priporočeno za podatkovne baze
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())
# Izhod: '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();
```

## Najboljše prakse

### Shranjevanje UUID v podatkovni bazi

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

**Nasvet:** V MySQL shranite UUID kot `BINARY(16)` namesto `CHAR(36)` za prihranek prostora in hitrejše indeksiranje.

### Validacija UUID

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

### Pretvorba UUID

```
// Odstranjevanje pomišljajev
const compact = uuid.replace(/-/g, '');

// Dodajanje pomišljajev nazaj
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ševanje težav (Odpravljanje napak)

### UUID v3/v5 ne deluje

**Problem:** Po izbiri v3 ali v5 se nič ne generira

**Rešitev:**

1. ✅ Preverite, da ste **izpolnili polje “Ime”** - je obvezno!
2. ✅ Izberite pravilen imenski prostor glede na vrsto vašega vnosa
3. ✅ Primeri veljavnih vnosov:
   - DNS: `example.com`, `google.com`
   - URL: `https://example.com/page`
   - Kakršno koli besedilo: `moja-aplikacija-v1`

**Nasvet:** Najprej poskusite z enostavno vrednostjo, kot je `test`, in imenskim prostorom DNS.

### Časovni UUID (v1, v6, v7) ima čuden čas

**Problem:** Generiran UUID ima nepričakovan časovni žig

**Rešitev:**

1. ✅ Preverite izbirnik datuma in časa - ali je nastavljen pravilen čas?
2. ✅ Izbirnik datuma in časa uporablja vaš lokalni časovni pas
3. ✅ Pustite izbirnik datuma in časa prazen za trenutni čas

### UUID ni mogoče kopirati

**Problem:** Gumb “Kopiraj vse” ne deluje

**Rešitev:**

1. ✅ Preverite, ali ste generirali UUID-je (ali niso prazni)
2. ✅ Nekateri brskalniki zahtevajo HTTPS za API odložišča
3. ✅ Alternativno izberite besedilo v tekstovnem polju in ga ročno kopirajte (Ctrl+C)

## Pogosto zastavljena vprašanja (FAQ)

### Ali lahko pride do kolizije UUID?

Teoretično da, vendar je verjetnost astronomsko majhna. Pri generiranju 1 milijarde UUID v4 na sekundo v obdobju 100 let je verjetnost kolizije približno 0,00000006%. V praksi do kolizije nikoli ne pride.

### Ali je UUID primeren kot primarni ključ v podatkovni bazi?

Odvisno od primera uporabe. UUID je idealen za distribuirane sisteme in situacije, ko potrebujete globalno edinstvenost. Za preproste aplikacije z eno podatkovno bazo je lahko avtomatsko povečevanje učinkovitejše.

### Ali so UUID-ji, ustvarjeni s tem orodjem, varni?

Da, uporabljamo Web Crypto API (\`crypto.getRandomValues()\`), ki zagotavlja kriptografsko varne naključne vrednosti. Vse se dogaja lokalno v vašem brskalniku.

### Kakšna je razlika med različicami UUID?

\- \*\*v1\*\*: Časovni žig + MAC/naključno - kronološko razvrščanje, slabša zmogljivost PB - \*\*v3/v5\*\*: Na osnovi zgoščene vrednosti - deterministično, za pretvorbo znanih identifikatorjev - \*\*v4\*\*: Naključno - najvarnejše, najpogosteje uporabljeno - \*\*v6\*\*: Preurejen časovni žig - boljša zmogljivost PB kot v1 - \*\*v7\*\*: Unix časovni žig - najboljša zmogljivost PB + časovno razvrščanje

### Katero različico UUID naj uporabim?

Za večino primerov uporabite \*\*v4\*\* (naključno). Za podatkovne baze s časovnim razvrščanjem uporabite \*\*v7\*\* (sodoben) ali \*\*v6\*\* (standarden). Za pretvorbo znanih identifikatorjev (URL, DNS) uporabite \*\*v5\*\* (SHA-1).

### Ali lahko uporabim UUID za žetone in ključe API?

UUID v4 je primeren za ID-je sej in podobne žetone. Za ključe API razmislite o uporabi daljših naključnih nizov (npr. 256-bitne vrednosti) ali specializiranih knjižnic.

### Kako veliki so UUID-ji?

UUID ima 128 bitov (16 bajtov). V formatu niza s pomišljaji zavzame 36 znakov. Brez pomišljajev 32 heksadecimalnih znakov.

## Alternative UUID

### ULID (Universally Unique Lexicographically Sortable Identifier)

- 128-bitni ID (enako kot UUID)
- Leksikografsko razvrstljiv po času ustvarjanja
- Bolj kompaktna predstavitev (26 znakov namesto 36)
- Kodiranje base32, ki ne razlikuje velikih in malih črk

**Primer:** `01ARZ3NDEKTSV4RRFFQ69G5FAV`

### NanoID

- Manjša velikost kot UUID (standardno 21 znakov)
- URL-prijazno (brez posebnih znakov)
- Hitrejše generiranje
- Nastavljiva dolžina in abeceda

**Primer:** `V1StGXR8_Z5jdHi6B-myT`

### Snowflake ID (Twitter)

- 64-bitni ID (manjši od UUID)
- Časovno razvrstljiv
- Vsebuje ID delavca in zaporedno številko
- Zahteva centralizirano konfiguracijo

**Primer:** `1234567890123456789`

## Zmogljivost in optimizacija

### Hitrost generiranja

Naš generator lahko ustvari:

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

### Nasveti za zmogljivost

1. **Serijsko generiranje** – Če potrebujete veliko UUID-jev, jih generirajte vse naenkrat namesto posamezno
2. **Shranjevanje v PB** – Indeksirajte stolpce UUID za hitro iskanje
3. **Kompresija** – UUID-je shranite v binarni obliki (16 bajtov) namesto niza (36 bajtov)
4. **Predpomnjenje** – V nekaterih primerih lahko UUID-je vnaprej generirate in jih shranite v predpomnilnik

## Za razvijalce

### Struktura UUID v4

```
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
|        |    |    |    |
|        |    |    |    └─ 48 bitov naključnih podatkov (node)
|        |    |    └────── 16 bitov naključnih podatkov z varianto (clock_seq)
|        |    └─────────── 12 bitov naključnih podatkov + 4 biti različice (time_hi_and_version)
|        └──────────────── 16 bitov naključnih podatkov (time_mid)
└───────────────────────── 32 bitov naključnih podatkov (time_low)
```

- Različica (4 bite): vedno `0100` (binarno) = `4` (heksadecimalno)
- Varianta (2-3 bite): vedno `10` (binarno) za RFC 4122

### Testiranje UUID

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

## Varnostni vidiki

### Česa ne smete početi z UUID

❌ **Ne uporabljajte UUID v1 za občutljive aplikacije** – Vsebuje časovni žig, kar je lahko varnostno tveganje

❌ **Ne uporabljajte `Math.random()` za generiranje UUID** – Ni kriptografsko varno

❌ **Ne zanašajte se na UUID za avtorizacijo** – UUID je mogoče uganiti (čeprav z izjemno majhno verjetnostjo)

❌ **Ne shranjujte UUID v piškotke brez šifriranja** – Uporabite podpisane piškotke ali JWT

### Kaj storiti

✅ **Uporabite UUID v4 za večino primerov** – Najvišja entropija in varnost

✅ **Kombinirajte UUID z drugimi varnostnimi ukrepi** – Za upravljanje sej uporabite HTTPS, HttpOnly piškotke in kratek rok veljavnosti

✅ **Validirajte UUID na strežniku** – Vedno preverite format in različico UUID

✅ **Uporabljajte kriptografsko varne vire naključnosti** – `crypto.getRandomValues()` v brskalniku, `/dev/urandom` na Linuxu

## Zanimivosti

- **Število možnih UUID v4:** 2^122 ≈ 5.3 × 10^36 (340 undecilijonov)
- **Potrebna kolizija:** Za 50% verjetnost kolizije morate generirati 2.71 × 10^18 UUID (2.71 kvintilijonov)
- **Velikost vseh možnih UUID:** Če bi vsak UUID shranili kot 16 bajtov, bi celoten prostor zavzel 85 zettabajtov (85 milijard terabajtov)
- **Izvor:** UUID je bil standardiziran kot del DCE (Distributed Computing Environment) leta 1990

## 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))
- 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))
