bitlvl
SR

Generator UUID-ova i ULID-ova

Generišite identifikatore kriptografskim izvorom nasumičnosti pregledača, ili nalepite jedan da saznate koje je vrste i kada je napravljen.

Vrsta
Format
 

Pregledajte identifikator

Rezultati i poruke ovog alata prikazuju se na engleskom.

Koju vrstu da koristim?

UUID v4UUID v7ULID
Sadržaj122 nasumična bita48-bitna ms vremenska oznaka + 74 nasumična bita48-bitna ms vremenska oznaka + 80 nasumičnih bitova
Sortabilan po vremenuNeDaDa
Tekstualni oblik8-4-4-4-12 heks8-4-4-4-12 heks26 znakova Crockford Base32
StandardRFC 4122 / 9562RFC 9562 (2024)Specifikacija zajednice
Pogodnost za bazeLoš kao primarni ključ: nasumična umetanja fragmentiraju B-stablo indekseDobar: novi redovi završavaju na kraju indeksaDobar, ali zahteva 128-bitnu kolonu ili string od 26 znakova

Za nov sistem, UUID v7 je razuman podrazumevani izbor: to je standardni UUID, prihvata ga svaka baza i jezik, i drži indekse kompaktnim. Koristite v4 kad ID ne sme da otkrije kada je napravljen. ULID je dobar izbor tamo gde je bitan njegov kraći, URL-prijateljski tekstualni oblik i gde ga ekosistem već koristi.

Čitanje bitova

U xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, cifra M je verzija (4 ili 7), a prvi bitovi N su varijanta (8, 9, a ili b za standardne UUID-ove). U v7 prvih 12 heks cifara je Unix vreme u milisekundama; u v1 je vreme rasuto po tri polja, a poslednjih 12 cifara je obično MAC adresa mašine koja ga je napravila. Inspektor sve to dekodira.

Kolizije

v4 UUID ima 2¹²² mogućnosti. Da biste dostigli 50% šanse za jednu koliziju, morali biste da ih generišete oko 2.7 × 10¹⁸, otprilike milijardu u sekundi tokom 85 godina. U praksi je rizik loš izvor nasumičnosti, a ne matematika, zbog čega ova stranica koristi crypto.getRandomValues, a ne Math.random.

Pitanja

Koja je razlika između UUID-a i GUID-a?

U praksi nikakva. GUID je Microsoftov naziv za isti 128-bitni identifikator. Windows alati ih često pišu velikim slovima sa vitičastim zagradama, što opcija formata ovde reprodukuje.

Da li su ovi UUID-ovi zaista nasumični?

Nasumični bitovi dolaze iz kriptografski bezbednog generatora pregledača (WebCrypto), istog izvora koji se koristi za ključeve. Nisu izvedeni iz vašeg sata ni iz bilo čega predvidivog, osim što v7 i ULID namerno uključuju trenutno vreme.

Može li UUID da se poveže sa mnom?

v4 ne može. v7 ili ULID otkriva kada je napravljen. v1 može da sadrži MAC adresu mašine koja ga je generisala, zbog čega je v1 izašao iz upotrebe.

Da li da koristim UUID kao primarni ključ u bazi?

Da ako vam trebaju ID-jevi generisani na klijentima ili preko više servisa, ali radije v7 da umetanja budu sekvencijalna. Čuvajte ga u nativnoj 16-bajtnoj UUID koloni (PostgreSQL uuid, MySQL BINARY(16)) umesto u stringu od 36 znakova.

Šta je nil UUID?

00000000-0000-0000-0000-000000000000, definisan kao čuvar mesta koji znači „nema vrednosti“. RFC 9562 definiše i max UUID od samih jedinica.