Generator UUID
Wygeneruj od razu losowy UUID v4 lub uporządkowany czasowo UUID v7 albo do 10 000 naraz. To także generator GUID online: nowy GUID to ten sam rodzaj 128-bitowej wartości. Wklej dowolny UUID, aby odczytać jego wersję, czas utworzenia i każde pole.
Kolorowa cyfra to wersja: pierwsza cyfra trzeciej grupy w każdym UUID.
Tworzone i odczytywane w twojej przeglądarce przez crypto.getRandomValues; nic nie jest wysyłane.
Czym jest UUID i co oznacza ten skrót?
UUID to skrót od Universally Unique Identifier, czyli uniwersalnie unikalny identyfikator: 128-bitowa etykieta, którą każdy komputer może utworzyć samodzielnie i mimo to oczekiwać, że żaden inny komputer nie utworzy takiej samej. Zapisuje się go jako 32 cyfry szesnastkowe w pięciu grupach, np. 919108f7-52d1-4320-9bac-f847db4148a8.
Format definiuje RFC 9562 (maj 2024), który zastąpił RFC 4122 i dodał wersje 6, 7 i 8. Żaden centralny rejestr nie przydziela UUID: unikalność bierze się z losowości, ze znacznika czasu albo z hashowania nazwy, zależnie od wersji.
Bazy danych używają ich jako kluczy głównych, API jako identyfikatorów żądań i obiektów, a systemy operacyjne do oznaczania dysków, partycji i komponentów oprogramowania. GUID (Globally Unique Identifier, globalnie unikalny identyfikator) to nazwa, jaką Microsoft nadał temu samemu.
UniversallyUniqueIDentifier
- 128 bitów
- 16 bajtów
- 32 cyfry szesnastkowe
- 36 znaków z myślnikami
919108f7-52d1-4320-9bac-f847db4148a8
GUIDnazwa Microsoftu dla tej samej wartości

Wybierz wersjęLosowy v4, uporządkowany czasowo v7, oparty na nazwie v5 i pozostałe, każdy w swoim kolorze.Jedno kliknięcieSkopiuj go albo utwórz nowy; serię do 10 000 pobierzesz jako tekst, CSV, JSON lub SQL.Każde poleBity, które RFC 9562 definiuje dla tej wersji, z odczytanym czasem zapisanym w v7.Dowolny formatNawiasy klamrowe, bez myślników, wielkie litery, Base64url, liczba całkowita lub kolejność bajtów .NET.Format i długość UUID: 36 znaków
UUID ma 128 bitów, zapisanych jako 32 cyfry szesnastkowe i 4 myślniki w grupach po 8, 4, 4, 4 i 12: razem 36 znaków. Pierwsza cyfra trzeciej grupy to wersja, a pierwsza cyfra czwartej grupy wskazuje wariant: 8, 9, a lub b dla UUID zgodnych z RFC 9562.
Zatem 017f22e2-79b0-7cc3-98c4-dc0c0c07398f to wersja 7, wariant RFC. Wielkie, małe i mieszane litery są poprawne; większość narzędzi wypisuje małe litery, a uuidgen w macOS wielkie. Bez myślników UUID ma 32 znaki, w nawiasach klamrowych 38 (format B w .NET), jako urn:uuid: 45, a w Base64url 22.
Wyrażenie regularne, które sprawdza postać z RFC: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ z flagą ignorowania wielkości liter. Odrzuca Nil UUID i Max UUID, które są poprawne, ale specjalne; dekoder powyżej je rozpoznaje.
32 cyfry szesnastkowe + 4 myślniki = 36 znaków
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxxM wersja: 1–8N wariant: 8, 9, a lub b^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$- Standardowy36
- Bez myślników32
- Klamry {…}38
- urn:uuid:45
- Base64url22
- Base6424
- Base5821
- Base3226
- Liczba całkowitado 39
- Binarnie16 bajtów
Wersje UUID: od v1 do v8
Wersja mówi, jak powstał UUID: v4 z losowych bitów, v7 z czasu i losowych bitów, v1 i v6 ze znacznika czasu i identyfikatora węzła, v3 i v5 przez hashowanie nazwy, a v8 według własnego układu twórcy.
Wersji 2 i 0 ta strona nie generuje: v2 (DCE Security) jest zarezerwowana, a RFC 9562 nie definiuje jej układu, zaś 0 nie jest wersją. Dwie wartości specjalne nie mają wersji: Nil UUID to same zera, a Max UUID same jedynki (ffffffff-ffff-ffff-ffff-ffffffffffff, nowość w RFC 9562).
W nowych systemach RFC 9562 zaleca v7 zamiast v1 i v6 oraz v5 zamiast v3. v4 pozostaje prostym wyborem, gdy wartość nie powinna nic mówić o tym, kiedy powstała.
- czas
- losowe
- skrót
- sekwencja zegara
- węzeł
- wersja
- wariant
UUID v4 czy v7: którego użyć?
Używaj v7 do kluczy w bazie danych i wszystkiego, co sortujesz lub indeksujesz: zaczyna się od czasu utworzenia, więc nowe wiersze trafiają na koniec indeksu. Używaj v4, gdy identyfikator nie może zdradzać, kiedy powstał: wszystkie 122 wolne bity są w nim losowe.
Losowe klucze v4 rozrzucają każde wstawienie po całym indeksie B-tree, co dzieli strony i zmusza do trzymania w pamięci większej części indeksu; klucze v7 przychodzą po kolei jak liczby z autoinkrementacji, a mimo to każdy serwer może je tworzyć bez pytania bazy danych. v7 ma 74 losowe bity na milisekundę, więc dwa serwery, które tworzą UUID w tej samej chwili, i tak nie utworzą takiego samego.
Cena: każdy, kto zobaczy v7, odczyta milisekundę jego utworzenia (wklej jeden w dekoderze powyżej). Jeśli to ważne, użyj v4 albo trzymaj v7 wewnętrznie, a publicznie pokazuj inny identyfikator.
c100eb4b-4f3f-4b29-ad77-da7cd9d1eda592c97333-2db8-4fc2-b5b6-cedd8c7abede01a16d3e-e1c0-70f6-99ec-6d454991b2fa01a16d3e-e1c0-70f6-99ec-6d45c2f6b35b- już w indeksie
- wolne
- nowy v4
- nowy v7
- podział strony: połowa jej kluczy przechodzi na nową stronę
GUID a UUID: czy jest jakaś różnica?
GUID i UUID to ta sama 128-bitowa wartość w tej samej postaci tekstowej; GUID to nazwa, jaką nadał jej Microsoft. Guid.NewGuid() w .NET tworzy losowy UUID w wersji 4, a Guid.CreateVersion7() z .NET 9 wersję 7.
Różnica tkwi w pamięci. Struktura GUID Microsoftu przechowuje pierwsze trzy grupy jako liczby little-endian, więc ToByteArray() w .NET zwraca pierwsze 8 bajtów w innej kolejności niż sieciowa kolejność bajtów z RFC 9562: 919108f7-52d1-… staje się bajtami f7 08 91 91 d1 52 …. Tekst jest ten sam; surowe bajty przenoszone między systemami trzeba przekonwertować. Dekoder pokazuje obie kolejności.
uniqueidentifier w SQL Server sortuje ponadto najpierw według sześciu ostatnich bajtów, więc wartości v7 tracą tam kolejność czasową; NEWSEQUENTIALID() tworzy wartości, które ją zachowują, ale po restarcie mogą znów zaczynać od niższych i łatwo je odgadnąć. Stare identyfikatory GUID z COM mogą mieć własne bity wariantu Microsoftu zamiast tych z RFC 9562; dekoder nazywa ten wariant.
919108f7-52d1-4320-9bac-f847db4148a8- Data1 · 4 bajty, odwrócone
- Data2 · odwrócone
- Data3 · odwrócone
- Data4 · bez zmian
Jak wygenerować UUID w kodzie
Większość języków tworzy UUID v4 w jednej linii, a wiele także v7: uuid.uuid7() w Pythonie 3.14, Guid.CreateVersion7() w .NET 9, UUID.ofEpochMillis() w Javie 26, uuid.NewV7() w Go 1.27, crypto.randomUUIDv7() w Node.js 26.1 i uuidv7() w PostgreSQL 18. Przeglądarki wciąż mają tylko crypto.randomUUID(), czyli v4.
Wybierz swój język, aby zobaczyć gotową linię kodu. Nie każda implementacja v7 zachowuje kolejność UUID utworzonych w tej samej milisekundzie: Python i Go to robią, .NET i Node tego nie obiecują. A UUID() w MySQL zwraca UUID w wersji 1, który w Linuksie i Windows zawiera prawdziwy adres MAC serwera.
Wbudowane funkcje UUID w poszczególnych językach
import uuid
uuid.uuid4() # v4
uuid.uuid7() # v7, Python 3.14+
uuid.uuid5(uuid.NAMESPACE_DNS, "www.example.com") # v5
uuid7() ma 42-bitowy licznik, więc UUID z jednej milisekundy zachowują kolejność.
Czy dwa UUID mogą być takie same?
W teorii tak, w praktyce nie: UUID v4 ma 122 losowe bity, czyli około 5,3 × 10³⁶ wartości. Trzeba by ich utworzyć około 103 bilionów, żeby szansa, że jakiekolwiek dwa się powtórzą, wyniosła jeden do miliarda, i około 2,7 tryliona, żeby wyniosła pół na pół.
To granica z paradoksu dnia urodzin: przy n losowych wartościach spośród N szansa na powtórzenie wynosi około 1 − e^(−n(n−1)/2N). Przy miliardzie UUID na sekundę na szansę 50% trzeba by czekać około 86 lat. Prawdziwe duplikaty biorą się z wadliwych generatorów: nielosowego ziarna, maszyny wirtualnej sklonowanej razem ze stanem generatora liczb losowych albo identyfikatorów kopiowanych ręcznie.
W v7 mogą się powtórzyć tylko UUID utworzone w tej samej milisekundzie, a rozróżniają je 74 losowe bity. Generator na tej stronie zachowuje też kolejność serii w obrębie jednej milisekundy (RFC 9562 §6.2), więc 10 000 UUID utworzonych naraz jest unikalnych i posortowanych.
Przy miliardzie na sekundę utworzenie tylu zajmie 1 sekunda.
Dekoder UUID: jak odczytać znacznik czasu z UUID
Wklej UUID w zakładce „Dekoduj i sprawdź”, czyli w dekoderze i walidatorze UUID powyżej: odczytuje on wersję i wariant z dwóch stałych miejsc, a potem pola zdefiniowane dla tej wersji. v7 podaje milisekundę utworzenia, a v1 lub v6 czas z dokładnością do 100 nanosekund oraz sekwencję zegara i identyfikator węzła.
Węzeł v1 lub v6 z wyzerowanym bitem multicast może być prawdziwym adresem MAC karty sieciowej; sprawdź jej producenta w wyszukiwarce adresów MAC. Generatory, które dbają o prywatność, ustawiają ten bit i używają losowego węzła, tak jak ten.
Czas to wartość zapisana przez generator, a nie dowód, kiedy UUID powstał. v4 nie zawiera czasu, tylko losowe bity, a v3, v5 i v8 zawierają skróty (hashe): nie ma czego odczytać, a skrótu nie da się odwrócić do nazwy. Wklej listę, aby sprawdzić do 1000 UUID naraz: błędne wiersze, duplikaty i to, czy UUID oparte na czasie są w kolejności.
017f22e2-79b0-7cc3-98c4-dc0c0c07398f- unix_ts_ms
0x017f22e279b0 - ms od 1970
1 645 557 742 000 - UTC
2022-02-22T19:22:22.000Z
c232ab00-9414-11ec-b3c8-9f6bdeced846- time_high · time_mid · time_low
1ec 9414 c232ab00 - kroki 100 ns od 1582-10-15
138 648 505 420 000 000 - UTC
2022-02-22T19:22:22.0000000Z
Ta sama chwila: przykłady z RFC 9562 utworzono jednocześnie.
UUID oparte na nazwie: v5 i v3
UUID v5 to skrót SHA-1 z UUID przestrzeni nazw i nazwy, obcięty do 128 bitów, z ustawioną wersją i wariantem; v3 robi to samo z MD5. Ta sama przestrzeń nazw i nazwa zawsze dają ten sam UUID na każdym komputerze: wybierz v5 powyżej, aby użyć tej strony jako generatora UUID v5.
RFC 9562 definiuje cztery przestrzenie nazw: DNS dla nazw domen, URL, OID i X.500. Zatem www.example.com w przestrzeni nazw DNS to jako v5 zawsze 2ed6657d-e927-568b-95e1-2665a8aea6a2. Używaj UUID opartych na nazwie, aby nadać stały identyfikator czemuś, co ma już unikalną nazwę, bez przechowywania tabeli powiązań.
Wybieraj v5 zamiast v3: MD5 jest słabszy, a RFC 9562 zaleca v5. Żaden z nich nie ukrywa nazwy: każdy, kto ją odgadnie, obliczy ten sam UUID. Opcja v8 na tej stronie używa w ten sam sposób SHA-256, jak we własnym przykładzie v8 z RFC.
- Przestrzeń nazw
6ba7b810-9dad-11d1-80b4-00c04fd430c8DNS · 16 bajtów - Nazwa
"www.example.com"UTF-8 · 15 bajtów - Skrót SHA-1, 160 bitów
2ed6657de927468b55e12665a8aea6a22dee3e35zostaje pierwsze 128 bitów - Wynikowy UUID
2ed6657d-e927-568b-95e1-2665a8aea6a2cyfra wersji 4 → 5 · cyfra wariantu 5 → 9
- DNS
6ba7b810… - URL
6ba7b811… - OID
6ba7b812… - X.500
6ba7b814…
ULID a UUID v7 (i inne identyfikatory)
ULID i UUID v7 zaczynają się od 48-bitowego znacznika czasu w milisekundach i sortują się według czasu. Różnica: ULID przeznacza wszystkie pozostałe 80 bitów na losowość i zapisuje się go jako 26 znaków Base32, a v7 poświęca 6 bitów na wersję i wariant i pasuje do każdej kolumny i biblioteki obsługującej UUID.
Jeśli twoja baza danych, ORM lub API już obsługuje UUID, v7 daje kolejność czasową bez nowego typu. NanoID i podobne krótkie identyfikatory to losowe ciągi wybranej długości, bez czasu i bez standardowego układu. Każdy UUID można też zapisać krócej: 22 znaki w Base64url, najwyżej 22 w Base58.
- milisekundy od 1970
- losowe
- wersja i wariant
Czy UUID są bezpieczne jako tokeny?
Nie. RFC 9562 mówi, by nie zakładać, że UUID są trudne do odgadnięcia, i nigdy nie używać ich jako uprawnienia (security capability): identyfikatora, którego samo posiadanie daje dostęp, jak link do resetu hasła czy klucz API.
v4 z dobrego generatora jest losowy, ale v1, v6 lub v7 zdradza czas utworzenia, a v3 lub v5 można ponownie obliczyć z nazwy. Do sekretów używaj tokenu stworzonego do tego celu, np. 256 losowych bitów z generatora kryptograficznego, i sprawdzaj uprawnienia przy każdym żądaniu. UUID nadają się na publiczne identyfikatory, gdy dostęp jest sprawdzany osobno.
Generator UUID: pytania i odpowiedzi
Jak wygenerować UUID?
crypto.randomUUID() w JavaScripcie, uuid.uuid4() w Pythonie i Guid.NewGuid() w C#.Co oznacza skrót UUID?
Czy GUID to to samo co UUID?
Której wersji UUID użyć?
Czy dwa UUID mogą kiedykolwiek być takie same?
Czy da się zdekodować UUID?
Jaka jest długość UUID?
Czym jest pusty GUID lub Nil UUID?
Czy UUID v7 da się sortować?
Czy można bezpiecznie użyć UUID jako hasła lub tokenu dostępu?
Czy UUID utworzone tutaj są gdzieś wysyłane?
Czegoś brakuje?Zaproponuj funkcję lub nowe narzędzie
Powiązane narzędzia
Generator Haseł
Twórz w przeglądarce silne losowe hasła, frazy i PIN-y z dokładną liczbą bitów i czasem złamania
Wyszukiwanie Adresu MAC
Zidentyfikuj producenta urządzenia po adresie MAC z bazy IEEE
Kalkulator podsieci
Sieć, broadcast, dostępne hosty i maski dla każdego bloku IPv4 lub IPv6, a także VLSM, podział i podsieci w chmurze
Niewidzialny Znak
Kopiuj i wklejaj niewidzialny znak lub pustą spację oraz znajduj i usuwaj ukryte znaki w tekście