Czym jest wersja UUID?

UUID (Universally Unique Identifier) to 128-bitowy identyfikator standaryzowany przez RFC 4122 i RFC 9562. Każdy UUID zawiera pole wersji, które wskazuje sposób jego wygenerowania. Wersja jest zakodowana w 13. cyfrze szesnastkowej (starszy nibble 7. bajtu) i określa algorytm oraz źródła danych użyte do utworzenia identyfikatora.

Obecnie zdefiniowanych jest osiem wersji (v1 do v8) oraz dwie specjalne formy: Nil UUID (same zera) i Max UUID (same jedynki). Każda wersja służy innemu celowi — niektóre osadzają znaczniki czasu umożliwiające sortowanie chronologiczne, inne używają skrótów kryptograficznych do deterministycznego generowania, a jeszcze inne opierają się na liczbach losowych dla prostoty. Znajomość wersji pomaga zrozumieć właściwości, implikacje bezpieczeństwa i zamierzone zastosowanie danego UUID.

Pole wariantu, zakodowane oddzielnie, identyfikuje, z którą specyfikacją UUID jest zgodny dany identyfikator. Większość współczesnych UUID używa wariantu RFC 4122/RFC 9562, jednak starsze systemy mogą generować warianty NCS lub Microsoft.

Opis narzędzia

Narzędzie przyjmuje dowolny UUID jako dane wejściowe i identyfikuje jego numer wersji, nazwę wersji, wariant, metodę generowania oraz szczegółowy opis działania danej wersji. Obsługuje wszystkie standardowe wersje (v1 do v8), a także Nil i Max UUID. Wystarczy wkleić UUID, aby natychmiast zobaczyć jego pełną analizę.

Przykłady

Wejściowy UUID Wersja Nazwa
550e8400-e29b-41d4-a716-446655440000 4 Losowy (v4)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 1 Oparty na czasie (v1)
018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 7 Oparty na czasie Unix Epoch (v7)
00000000-0000-0000-0000-000000000000 Nil Nil UUID
ffffffff-ffff-ffff-ffff-ffffffffffff Max Max UUID

Funkcje

  • Wykrywa wszystkie wersje UUID od v1 do v8, a także Nil i Max UUID
  • Identyfikuje wariant (RFC 4122/9562, NCS, Microsoft lub Reserved)
  • Wyświetla czytelny dla człowieka opis wyjaśniający sposób generowania danej wersji
  • Pokazuje metodę generowania użytą do utworzenia UUID
  • Natychmiastowa identyfikacja w czasie rzeczywistym podczas wpisywania lub wklejania

Przypadki użycia

  • Debugowanie systemów rozproszonych: Sprawdź, czy UUID w logach są oparte na czasie (v1/v6/v7) czy losowe (v4), aby ustalić, czy zawierają osadzone znaczniki czasu, które można wyodrębnić.
  • Optymalizacja baz danych: Zidentyfikuj, czy klucze główne używają sortowalnej wersji UUID (v6, v7) czy losowej (v4), która może powodować fragmentację indeksów.
  • Audyt bezpieczeństwa: Wykryj UUID v1, które mogą ujawniać adresy MAC lub znaczniki czasu, pomagając ocenić ryzyko ujawnienia informacji.

Jak to działa

Narzędzie analizuje szesnastkową strukturę UUID, aby wyodrębnić dwa kluczowe pola:

  1. Wersja: Odczytywana z 13. cyfry szesnastkowej (indeks 12 w oczyszczonym ciągu szesnastkowym). Ten nibble bezpośrednio koduje numer wersji (1–8). Nil i Max UUID są wykrywane przez sprawdzenie, czy wszystkie bity wynoszą zero lub jeden.
  2. Wariant: Określany przez najbardziej znaczące bity 17. cyfry szesnastkowej (indeks 16). Wzorzec bitowy odpowiada jednej z czterech rodzin wariantów: NCS, RFC 4122/9562, Microsoft lub Reserved.

Wersje UUID w skrócie

Wersja Nazwa Kluczowa właściwość
v1 Oparty na czasie Znacznik czasu + adres MAC
v2 DCE Security Znacznik czasu + MAC + POSIX UID/GID
v3 Oparty na nazwie (MD5) Deterministyczny z przestrzeni nazw + nazwa
v4 Losowy 122 losowe bity
v5 Oparty na nazwie (SHA-1) Deterministyczny, silniejszy skrót niż v3
v6 Przestawiony oparty na czasie Sortowalna odmiana v1
v7 Oparty na czasie Unix Epoch Znacznik czasu Unix w ms + losowy, idealny dla kluczy DB
v8 Niestandardowy Specyficzny dla dostawcy lub eksperymentalny
Nil Nil UUID Wszystkie 128 bitów ustawione na zero
Max Max UUID Wszystkie 128 bitów ustawione na jeden

FAQ

Jaka jest różnica między wersją a wariantem UUID? Wersja wskazuje algorytm generowania (oparty na czasie, losowy, oparty na skrócie itp.), natomiast wariant identyfikuje, z którą specyfikacją UUID jest zgodny (RFC 4122, NCS, Microsoft). Większość spotykanych UUID będzie wariantu RFC 4122/9562.

Której wersji UUID powinienem używać? W przypadku większości zastosowań v4 (losowy) jest najprostszy i najszerzej obsługiwany. Jeśli potrzebujesz sortowalnych identyfikatorów dla kluczy głównych bazy danych, v7 jest nowoczesnym zaleceniem. Użyj v5, gdy potrzebujesz deterministycznych UUID wyprowadzonych z nazwy.

Czy to narzędzie może wyodrębnić znacznik czasu z UUID? Narzędzie identyfikuje wyłącznie wersję i wariant. Aby wyodrębnić osadzone znaczniki czasu z UUID v1, v6 lub v7, użyj dedykowanego narzędzia UUID Time Extractor.