UUID generator
Generirajte nasumične v4 UUID-ove — jedan ili više.
Što je UUID?
UUID (Universally Unique Identifier — Univerzalno Jedinstveni Identifikator) je 128-bitni broj koji se koristi za jedinstvenu identifikaciju informacija u distribuiranim sustavima bez potrebe za središnjim tijelom. UUID-ovi su standardizirani u RFC 4122 i koriste se svuda — od primarnih ključeva baza podataka i praćenja API zahtjeva do upravljanja sesijama i imenovanja datoteka.
Standardni UUID format je 36 znakova s četiri crtice: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, gdje M označava verziju (1–5), a N označava varijantu. Najčešće korištena verzija je UUID v4, koji generira identifikatore koristeći kriptografsku nasumičnost. Ovaj alat po zadanom generira UUID v4.
UUID v4 format
UUID v4 koristi 122 nasumična bita (preostalih 6 bitova kodira verziju i varijantu). Format je xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx gdje je svaki x nasumična heksadecimalna znamenka, a y je jedna od 8, 9, A ili B. Broj 4 u trećoj grupi identificira ga kao verziju 4. Svaki UUID v4 generira se neovisno koristeći kriptografsku nasumičnost.
Kako koristiti ovaj alat
Kliknite gumb za generiranje da biste stvorili novi UUID v4. Svaki klik daje novi, kriptografski nasumičan identifikator. Možete generirati više UUID-ova odjednom za skupne operacije. Kliknite gumb za kopiranje kako biste kopirali UUID u međuspremnik za korištenje u kodu, konfiguracijama ili bazama podataka.
Uobičajeni slučajevi upotrebe UUID-a
- Primarni ključevi baze podataka: UUID-ovi omogućavaju distribuiranim sustavima neovisno stvaranje zapisa bez kolizija ključeva, za razliku od auto-incrementalnih cijelih brojeva koji zahtijevaju koordinaciju.
- ID-ovi API zahtjeva: Priložite UUID svakom API zahtjevu za end-to-end praćenje kroz mikro-usluge.
- Tokeni sesije: Stvaranje jedinstvenih identifikatora sesije koje je nemoguće pogoditi.
- Nazivi datoteka: Generiranje jedinstvenih naziva datoteka za sprječavanje kolizija kada više korisnika istovremeno prenosi podatke.
- Ključevi idempotentnosti: Koristite UUID-ove u API-jima plaćanja kako biste osigurali da ista transakcija nije obrađena dvaput.
Vjerojatnost kolizije
UUID v4 ima 122 nasumična bita, dajući 5,3 × 10³⁶ mogućih vrijednosti. Vjerojatnost generiranja dva identična UUID-a astronomski je mala. Trebali biste generirati 2,71 × 10¹⁸ UUID-ova (2,71 kvadrilijuna) prije dosezanja 50% vjerojatnosti jedne kolizije. Praktično govoreći, kolizije nisu realistična briga ni za jednu aplikaciju.
Nulti UUID
Nulti UUID (00000000-0000-0000-0000-000000000000) posebna je vrijednost definirana u RFC 4122 kao rezervirano mjesto ili zadana vrijednost. Neke aplikacije koriste je za predstavljanje „bez vrijednosti
Usporedba verzija UUID-a
UUID v1 koristi trenutni vremenski žig i MAC adresu uređaja — brz, ali potencijalno otkriva informacije o uređaju. UUID v3 i v5 generiraju deterministične UUID-ove iz prostora naziva i naziva koristeći MD5 i SHA-1. UUID v4 koristi čistu nasumičnost, nudeći najbolju kombinaciju jedinstvenosti, jednostavnosti i privatnosti. UUID v7 (nacrt standarda) kombinira vremenski prefiks s nasumičnošću za UUID-ove koji se mogu sortirati po vremenu.
Je li moj UUID siguran?
Da. Generiranje koristi nativni API crypto.randomUUID() preglednika, koji pruža kriptografski sigurnu nasumičnost. Sva obrada odvija se lokalno na vašem uređaju. UUID-ovi nisu evidentirani, pohranjeni niti preneseni ni na jedan poslužitelj.
Često postavljana pitanja
Trebam li koristiti UUID-ove ili auto-incrementalne ID-ove?
UUID-ovi su bolji za distribuirane sustave, mikro-uslužne arhitekture i svaki scenarij gdje se zapisi stvaraju na više poslužitelja. Auto-incrementalni ID-ovi su jednostavniji, manji (4–8 bajtova naspram 16 bajtova) i učinkovitiji za indeksiranje baze podataka. Biraju ovisno o arhitekturi — centralizirani sustavi mogu koristiti auto-increment, distribuirani sustavi imaju koristi od UUID-ova.
Trebaju li UUID-ovi biti pohranjeni kao nizovi u bazi podataka?
Ne. Većina baza podataka podržava nativni UUID tip koji pohranjuje vrijednost kao 16 bajtova umjesto 36-bajtne string reprezentacije. PostgreSQL ima UUID tip stupca, MySQL može koristiti BINARY(16), a MongoDB koristi vlastiti UUID binarni podtip. Korištenje nativnih tipova štedi prostor i poboljšava performanse upita.