Salt la conținut

Generator UUID

Generați identificatori UUID v1, v3, v4, v5, v7 și ULID și decodați UUID-uri existente.

Rulează în browser. Nimic nu este încărcat.

Afișează versiunea, varianta și timpul încorporat pentru v1 și v7.

Despre acest instrument

Generatorul UUID produce fiecare tip de identificator într-o singură pagină: UUID v4 din crypto.randomUUID al browserului (RFC 9562 §5.4), UUID v7 din 48 de biți de milisecunde Unix plus un contor monoton și biți aleatori (§5.7 și §6.2), UUID v1 din tacturi de 100 ns începând din 1582, cu un id de nod aleatoriu în loc de o adresă MAC (§5.1), UUID v3 și v5 bazate pe nume, peste un spațiu de nume și un nume (§5.3, §5.5), constantele nil și max, precum și ULID, ca un marcaj de timp Crockford base32 de 10 caractere urmat de 16 caractere aleatorii. Puteți lua până la 1000 deodată, separate prin linie nouă, virgulă, punct și virgulă, bară verticală sau ca listă SQL, și puteți afișa UUID-urile ca 8-4-4-4-12, fără cratime, între acolade sau ca urn:uuid:, în timp ce ULID-urile își păstrează unica formă canonică, cu majuscule. Pentru că v3 și v5 sunt deterministe, acestea două returnează un singur identificator, nu o serie. Decodorul citește versiunea și varianta unui UUID existent și arată timpul încorporat pentru versiunile care au unul, v1 și v7. Nu generează v2, v6 sau v8.

Generarea și decodarea au loc integral în browser. UUID v4 provine din crypto.randomUUID, octeții aleatori ai UUID v1 și v7 și caracterele aleatorii ale unui ULID provin din crypto.getRandomValues, iar prefixul de timp provine din Date.now de pe calculatorul dumneavoastră. Versiunile bazate pe nume, v3 și v5, sunt calculate tot aici, cu implementarea MD5 proprie a paginii și cu crypto.subtle pentru SHA-1, așa că spațiul de nume și numele pe care îl tastați rămân în pagină. Nimic nu ajunge la API-ul XGM, URL-ul păstrează doar calea instrumentului - tipul, formatul de ieșire și numărul sunt stare a paginii, nu parametri de interogare - iar identificatorii pe care îi generați nu sunt stocați nicăieri după închiderea filei.

Cum se folosește

  1. Deschideți instrumentul Generator UUID.
  2. Lipiți sau tastați datele pe care vreți să le inspectați.
  3. Citiți rezultatul, calculat în browser; datele nu sunt trimise către XGM.
  4. Copiați rezultatul doar după ce ați verificat că arată corect.
  5. Folosiți instrumentele XGM înrudite dacă aveți nevoie de o imagine de diagnostic mai largă.

Întrebări frecvente

UUID v7 chiar poate fi sortat după timp?

De la o milisecundă la alta, da: primii 48 de biți sunt numărul de milisecunde Unix în ordine big-endian, așa că sortarea octeților sau a șirului hexazecimal sortează după momentul creării, ceea ce face ca v7 să fie mai potrivit decât v4 drept cheie de bază de date. În cadrul aceleiași milisecunde, acest instrument adaugă contorul de lungime fixă din RFC 9562 §6.2, activat implicit, astfel încât identificatorii generați în aceeași milisecundă păstrează ordinea în care au fost generați; dacă îl dezactivați, biții de sub marcajul de timp redevin aleatori, iar identificatorii din aceeași milisecundă nu mai au o ordine definită. Contorul ordonează doar identificatorii generați în această pagină - nu spune nimic despre identificatorii generați în altă parte în aceeași milisecundă.

Când ar trebui să folosesc UUID v5 în loc de v4?

Când aceeași intrare trebuie să corespundă întotdeauna aceluiași identificator. v5 aplică hash unui UUID de spațiu de nume împreună cu un nume (SHA-1, trunchiat la 16 octeți, cu biții de versiune și de variantă suprascriși), așa că același spațiu de nume și același nume dau același UUID pe orice mașină, pentru totdeauna, fără coordonare și fără o căutare în baza de date. v3 este aceeași construcție peste MD5 și există pentru compatibilitatea cu sisteme mai vechi; preferați v5 pentru orice lucru nou. Niciunul nu este o primitivă de securitate: numele poate fi recuperat de oricine îl poate ghici.

Cât de unic este un UUID v4?

Șase dintre cei 128 de biți sunt ficși - patru pentru versiune și doi pentru variantă - rămânând 122 de biți aleatorii, adică un spațiu de 2^122 valori extrase din sursa criptografică de numere aleatorii a browserului. La orice volum generat de o aplicație obișnuită, o coliziune nu este o preocupare practică. Este vorba de aleatoriu, nu de coordonare, așa că nimic nu împiedică în principiu o coliziune; o constrângere de unicitate în baza de date merită totuși păstrată.

Ar trebui să folosesc UUID v7 sau ULID?

Ambele încep cu același timestamp de 48 de biți în milisecunde, așa că ambele se sortează după timp. UUID v7 este un UUID real conform RFC 9562: intră într-o coloană uuid, într-un tip UUID din limbajul dumneavoastră și în orice API care validează deja forma 8-4-4-4-12. Un ULID are 26 de caractere Crockford base32 cu 80 de biți aleatori, este mai scurt de citit și insensibil la majuscule, dar nu este un UUID și nu intră într-o coloană uuid fără conversie.

Ce este „varianta” pe care o raportează decodorul?

Biții de variantă se află la începutul celei de-a 17-a cifre hexazecimale și spun ce aranjament urmează restul identificatorului. „RFC 9562” este cazul normal; „NCS (reserved)”, „Microsoft (reserved)” și „Future (reserved)” marchează aranjamentele vechi și rezervate, iar un GUID Microsoft scris cu câmpuri mixed-endian apare de obicei acolo. UUID-ul nil, format numai din zerouri, și UUID-ul maxim, format numai din f, sunt raportate după nume, nu printr-un număr de versiune.

De ce timpul încorporat este gol pentru UUID-ul meu?

Doar v1 și v7 poartă un timestamp. Un v4 este aleatoriu, iar v3 și v5 sunt hash-uri ale unui spațiu de nume și ale unui nume, așa că nu există niciun timp de extras - decodorul spune asta în loc să inventeze unul. Pentru v1 valoarea este convertită din intervale de 100 de nanosecunde de la 1582-10-15, iar pentru oricare dintre versiuni reflectă ceasul mașinii care a generat identificatorul, așa că tratați-o ca pe un indiciu, nu ca pe o dovadă.

Citiți ghidul complet Generator UUID