Czym Jest UUID?
UUID (Universally Unique Identifier, czyli uniwersalnie unikalny identyfikator) to 128-bitowa liczba służąca do oznaczania np. wierszy bazy danych, plików, żądań API i urządzeń bez pytania centralnego serwera o kolejny wolny identyfikator. Zapisuje się go jako 32 cyfry szesnastkowe w pięciu grupach, 8-4-4-4-12, na przykład f47ac10b-58cc-4372-a567-0e02b2c3d479.
UUID są zdefiniowane w RFC 9562 (2024), który zastąpił starszy RFC 4122 i dodał wersje 6, 7 i 8. Pierwsza cyfra szesnastkowa trzeciej grupy określa wersję (4 w 4372 powyżej), a pierwsza cyfra czwartej grupy wskazuje wariant (8, 9, a lub b w standardowych UUID).

Omówienie Wersji UUID
Każda wersja wypełnia te same 128 bitów inaczej. Oto te, z którymi faktycznie się spotkasz:
122 losowe bity. Brak ukrytego znaczenia, więc nic nie może wyciec. Domyślna w większości języków (crypto.randomUUID(), uuid.uuid4(), Guid.NewGuid()).
48-bitowy znacznik czasu Unix w milisekundach, a po nim losowe bity, więc nowe identyfikatory sortują się po starszych. RFC 9562 zaleca ją zamiast v1 i v6.
60-bitowy znacznik czasu, sekwencja zegara i 48-bitowy identyfikator węzła, którym pierwotnie był adres MAC komputera. Nasz generator używa zamiast niego losowego węzła.
UUID przestrzeni nazw plus nazwa, haszowane algorytmem SHA-1 (v5) lub MD5 (v3). Te same dane wejściowe zawsze dają ten sam UUID. Wybieraj v5.
Pola wersji 1 ułożone w innej kolejności, aby identyfikatory sortowały się według czasu. Głównie pomost dla systemów, które już używają v1.
Same zera (00000000-0000-0000-0000-000000000000) lub same f. Służą jako symbole zastępcze oznaczające „brak wartości” lub „koniec zakresu”.
Advertisement
Jak Wygenerować UUID
v4 dla losowego identyfikatora, v7, jeśli identyfikatory trafiają do indeksu bazy danych lub mają sortować się według czasu utworzenia, v5, jeśli ta sama nazwa ma zawsze dawać ten sam UUID.
Wygeneruj 1, 10, 100 lub nawet 1000 naraz. Każdy pochodzi z kryptograficznie bezpiecznego generatora liczb losowych przeglądarki.
Standardowy zapis małymi literami, {nawiasy klamrowe} i wielkie litery dla GUID w stylu Windows, 32 znaki bez łączników lub URN urn:uuid:.
Skopiuj pojedynczy UUID lub całą listę albo pobierz ją jako plik .txt. Adres strony zapamiętuje Twoje ustawienia, więc możesz dodać je do zakładek.
UUID a GUID: Czy Jest Różnica?
GUID (Globally Unique Identifier) to nazwa, której Microsoft używa dla tego samego identyfikatora. GUID utworzony przez Guid.NewGuid() w .NET lub New-Guid w PowerShell to standardowy UUID w wersji 4.
Widoczna różnica to sposób zapisu: narzędzia Windows często pokazują GUID wielkimi literami i w nawiasach klamrowych, np. {F47AC10B-58CC-4372-A567-0E02B2C3D479}. Ustaw format GUID z nawiasami klamrowymi i zaznacz Wielkie litery, aby uzyskać dokładnie taki zapis. Wewnętrznie Windows i .NET przechowują pierwsze trzy grupy w kolejności bajtów little-endian, więc surowe 16 bajtów różni się od kolejności bajtów UUID, nawet gdy tekst jest identyczny. Niektóre bardzo stare GUID COM używają własnych bitów wariantu Microsoftu, które dekoder powyżej oznacza.
Advertisement
UUID v4 czy v7: Który Wybrać?
Oba nadają się na unikalne identyfikatory. Różnica wychodzi na jaw, gdy przechowujesz ich miliony w indeksie bazy danych.
Używaj v7 jako kluczy głównych. Każdy nowy UUID v7 jest większy od poprzedniego, więc wstawiane wiersze trafiają na koniec indeksu B-drzewa zamiast w losowe miejsca, co utrzymuje indeksy zwarte, a wstawianie szybkie w PostgreSQL i MySQL. Wyjątkiem jest SQL Server: sortuje wartości
uniqueidentifiernajpierw według ostatnich sześciu bajtów, więc tam v7 nie daje takiej korzyści.Używaj v4, gdy identyfikator nie może niczego zdradzać. UUID v7 zawiera czas utworzenia z dokładnością do milisekundy; każdy, kto go zobaczy, może odczytać ten czas dekoderem powyżej.
Używaj v5 do stałych identyfikatorów tworzonych z nazw, na przykład jednego UUID na nazwę domeny lub URL, aby każdy system obliczał tę samą wartość bez współdzielenia tabeli.
Unikaj v1 w nowych projektach. Klasyczny v1 osadza adres MAC maszyny i czas utworzenia; RFC 9562 zaleca zamiast niego v7.
Czy Dwa UUID Mogą Być Takie Same?
Teoretycznie tak, w praktyce nie. UUID w wersji 4 ma 122 losowe bity, czyli około 5,3 × 10^36 możliwych wartości. Trzeba by wygenerować około 2,7 tryliona (2,7 × 10^18) UUID, zanim pojawi się choćby 50% szansy na jeden duplikat. To miliard UUID co sekundę przez około 86 lat.
Prawdziwym ryzykiem jest wadliwy generator liczb losowych, a nie matematyka. To narzędzie używa crypto.getRandomValues(), kryptograficznie bezpiecznego źródła przeglądarki, a v7 korzysta z licznika, dzięki czemu UUID utworzone w tej samej milisekundzie nadal sortują się poprawnie i nigdy się nie powtarzają.
Advertisement
Dekodowanie UUID: Wersja, Wariant i Znacznik Czasu
Otwórz kartę Dekoduj i wklej jeden lub więcej UUID, po jednym w wierszu, w postaci standardowej, z nawiasami klamrowymi, urn:uuid: lub 32-znakowej. Dla każdego zobaczysz, czy jest prawidłowy, jaką ma wersję i wariant, a dla v1, v6 i v7 także datę i godzinę utworzenia.
W przypadku UUID v1 i v6 dekoder pokazuje też identyfikator węzła i to, czy wygląda on na prawdziwy adres MAC, czy na losową wartość. To szybki sposób, by sprawdzić, czy stare identyfikatory w Twoim systemie nie ujawniają adresów sprzętowych.
Generowanie UUID w Kodzie
Większość popularnych języków i baz danych potrafi tworzyć UUID bez dodatkowych pakietów. Obsługa wersji 7 jest nowsza: dodały ją Python 3.14, PostgreSQL 18, .NET 9 i Go 1.27.
crypto.randomUUID()
// 'f47ac10b-58cc-4372-a567-0e02b2c3d479' (wersja 4)import uuid
uuid.uuid4() # losowy
uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com') # oparty na nazwie, zawsze taki sam
uuid.uuid7() # Python 3.14+SELECT gen_random_uuid(); -- wersja 4 (PostgreSQL 13+)
SELECT uuidv7(); -- wersja 7 (PostgreSQL 18+)Guid.NewGuid() // wersja 4
Guid.CreateVersion7() // wersja 7 (.NET 9+)
# PowerShell
New-Guiduuidgen # losowy UUID (macOS wypisuje wielkie litery)
uuidgen --time # wersja 1 (util-linux)
cat /proc/sys/kernel/random/uuid # jądro LinuksaUUID.randomUUID() // Java, wersja 4
uuid.NewV4() // biblioteka standardowa Go 1.27+, wersja 4
uuid.NewV7() // Go 1.27+, wersja 7
// starsze Go: github.com/google/uuid (uuid.New, uuid.NewV7)Advertisement
Więcej Narzędzi dla Programistów
Inne darmowe narzędzia dla programistów i administratorów systemów, wszystkie działające w Twojej przeglądarce: