Generator UUID/GUID to narzędzie do tworzenia uniwersalnych unikalnych identyfikatorów (Universally Unique Identifier). UUID to 128-bitowe identyfikatory stosowane powszechnie w programowaniu, bazach danych, systemach rozproszonych i architekturze mikroserwisów. Ich główna zaleta polega na tym, że mogą być generowane niezależnie przez dowolną liczbę systemów bez ryzyka kolizji i bez potrzeby centralnej koordynacji.

Nasz generator obsługuje trzy wersje UUID: v4 (losowe, najpopularniejsze), v1 (czasowe, oparte na znaczniku czasu) oraz NIL (pusty identyfikator). Możesz wygenerować do 100 identyfikatorów jednocześnie, wybrać format wyświetlania (z kreskami, bez kresek, wielkie litery, z nawiasami) i wyeksportować wyniki do plików CSV, TXT lub JSON. Cały proces odbywa się lokalnie w przeglądarce. Jeśli potrzebujesz krótszych kodów, skorzystaj z naszego generatora kodów alfanumerycznych.

Jak korzystać z generatora UUID

  1. Wybierz wersję UUID — UUID v4 (losowe) to najczęściej stosowana wersja, odpowiednia w większości przypadków. UUID v1 (czasowe) przydaje się, gdy potrzebujesz sortowania chronologicznego. NIL UUID to specjalny identyfikator złożony z samych zer.
  2. Określ format wyświetlania — standardowy z kreskami (8-4-4-4-12), bez kresek (ciąg 32 znaków), wielkie litery z kreskami lub z nawiasami klamrowymi (format stosowany w .NET).
  3. Ustaw liczbę UUID — za pomocą pola lub suwaka wybierz od 1 do 100 identyfikatorów do wygenerowania.
  4. Kliknij "Generuj UUID" — identyfikatory pojawią się natychmiast w sekcji wyników.
  5. Skopiuj lub eksportuj — użyj przycisku "Kopiuj", aby przenieść wszystkie UUID do schowka, lub wyeksportuj je do pliku CSV, TXT albo JSON.

Zastosowania UUID/GUID

UUID są jednym z fundamentalnych elementów nowoczesnej architektury oprogramowania. Wszędzie tam, gdzie potrzebny jest unikalny identyfikator obiektu bez centralnego rejestru, UUID stanowią naturalne rozwiązanie.

Bazy danych

Klucze główne w tabelach, identyfikatory rekordów, tokeny sesji użytkowników. UUID eliminują problem sekwencyjnych identyfikatorów przy replikacji i shardingu baz danych.

Systemy rozproszone

Identyfikatory w mikroserwisach, śledzenie żądań (request ID), korelacja logów, identyfikatory transakcji. Każdy węzeł generuje UUID niezależnie.

Pliki i zasoby

Nazwy przesyłanych plików, identyfikatory dokumentów, klucze zasobów w chmurze, unikalne ścieżki URL. UUID zapobiegają konfliktom nazw.

API i integracje

Klucze API, identyfikatory webhooków, tokeny autoryzacyjne, referencje w komunikacji REST. UUID zapewniają unikalność bez ujawniania struktury wewnętrznej.

Kolejki komunikatów

Identyfikatory wiadomości w systemach kolejkowych (RabbitMQ, Kafka), identyfikatory zdarzeń w event sourcing, klucze idempotentności do zapobiegania duplikatom.

Testowanie oprogramowania

Generowanie testowych danych, mockowanie identyfikatorów w testach jednostkowych i integracyjnych, tworzenie fixtures i seed data dla środowisk developerskich.

Wersje UUID — porównanie

Standard RFC 4122 definiuje pięć wersji UUID (v1-v5), z których nasz generator obsługuje trzy najpopularniejsze. Każda wersja ma inny mechanizm generowania i inne właściwości.

UUID v4 — losowe

Najpopularniejsza i najczęściej zalecana wersja. UUID v4 jest generowany przy użyciu kryptograficznie bezpiecznego generatora liczb losowych (crypto.randomUUID() w przeglądarkach). Ze 128 bitów identyfikatora 122 bity są losowe, co daje ponad 5,3 x 1036 możliwych kombinacji. Prawdopodobieństwo kolizji jest tak małe, że aby osiągnąć 50% szansy na duplikat, trzeba by wygenerować ponad 2,7 x 1018 identyfikatorów. UUID v4 nie zawiera żadnych informacji o systemie ani czasie utworzenia — jest w pełni losowy.

UUID v1 — czasowe

UUID v1 jest generowany na podstawie znacznika czasu (timestamp) oraz adresu MAC urządzenia. Dzięki temu identyfikatory v1 mają naturalny porządek chronologiczny — można je sortować według czasu utworzenia. Wadą jest to, że UUID v1 ujawnia informacje o momencie i miejscu wygenerowania. W naszym generatorze adres MAC jest symulowany losowo, aby zachować prywatność. UUID v1 sprawdza się w scenariuszach, gdzie ważna jest kolejność czasowa, np. w logach zdarzeń lub bazach danych z indeksami B-tree.

NIL UUID — pusty

NIL UUID to specjalny identyfikator składający się wyłącznie z zer: 00000000-0000-0000-0000-000000000000. Pełni rolę wartości zerowej (null value) w kontekstach, gdzie pole UUID jest wymagane, ale wartość nie jest jeszcze znana lub nie ma zastosowania. NIL UUID jest zdefiniowany w RFC 4122 i rozpoznawany przez wszystkie biblioteki obsługujące UUID.

Struktura UUID

UUID składa się z 32 cyfr szesnastkowych (128 bitów), wyświetlanych w 5 grupach oddzielonych myślnikami w formacie 8-4-4-4-12:

Grupa Znaki Nazwa Opis
xxxxxxxx 8 time-low Dolne bity znacznika czasu (v1) lub losowe (v4)
xxxx 4 time-mid Środkowe bity znacznika czasu lub losowe
Mxxx 4 version M = numer wersji (1, 4 itp.)
Nxxx 4 variant N = wariant (8, 9, a lub b)
xxxxxxxxxxxx 12 node Identyfikator węzła (MAC w v1) lub losowe

Cyfra wersji (M) pozwala odróżnić sposób generowania UUID: 1 = czasowy, 4 = losowy, 3 i 5 = oparty na nazwie (MD5 i SHA-1). Wariant (N) wskazuje na zgodność ze standardem RFC 4122 — wartości 8, 9, a i b oznaczają UUID zgodne z RFC.

UUID vs GUID — różnice

UUID (Universally Unique Identifier) i GUID (Globally Unique Identifier) to w praktyce te same identyfikatory. Różnica polega głównie na nazewnictwie i konwencjach stosowanych w różnych ekosystemach technologicznych.

UUID

  • Termin używany w środowisku Linux/Unix
  • Standard RFC 4122
  • Popularny w Python, Ruby, Java, Go
  • Konwencja: małe litery z kreskami

GUID

  • Termin używany przez Microsoft
  • Implementacja standardu RFC 4122
  • Popularny w .NET, C#, SQL Server
  • Konwencja: wielkie litery lub z nawiasami

Pod względem technicznym UUID i GUID mają identyczną strukturę i algorytmy generowania. Nasz generator pozwala tworzyć identyfikatory w obu konwencjach — format z małymi literami odpowiada UUID, a z wielkimi literami lub nawiasami klamrowymi — GUID.

Często zadawane pytania

Czy UUID są naprawdę unikalne?

Tak, prawdopodobieństwo wygenerowania dwóch identycznych UUID v4 jest astronomicznie małe. Istnieje 2122 możliwych kombinacji (ponad 5,3 x 1036), co czyni kolizję praktycznie niemożliwą.

Dla porównania: aby osiągnąć 50% szansy na duplikat, trzeba by wygenerować ponad 2,7 tryliona identyfikatorów. Generując milion UUID na sekundę, zajęłoby to ponad 85 lat.

Którą wersję UUID powinienem używać?

W większości przypadków UUID v4 jest najlepszym wyborem. Jest w pełni losowy, bezpieczny i nie ujawnia żadnych informacji o systemie ani czasie utworzenia.

UUID v1 stosuj wtedy, gdy potrzebujesz naturalnego sortowania chronologicznego — np. w logach zdarzeń lub jako klucze w bazach danych z indeksami B-tree, gdzie sekwencyjność poprawia wydajność wstawiania.

Czym różni się UUID od GUID?

UUID i GUID to w praktyce to samo — 128-bitowy identyfikator w formacie 8-4-4-4-12. UUID to nazwa stosowana w standardzie RFC 4122 i ekosystemie Linux/Unix, natomiast GUID to nazwa używana przez Microsoft w .NET i SQL Server.

Jedyna drobna różnica to konwencja zapisu: UUID zwykle zapisuje się małymi literami, a GUID wielkimi lub z nawiasami klamrowymi. Nasz generator obsługuje oba style.

Czy mogę używać UUID jako klucza głównego w bazie danych?

Tak, UUID są często używane jako klucze główne, szczególnie w systemach rozproszonych, gdzie każdy węzeł musi generować identyfikatory niezależnie. UUID eliminują problem sekwencyjnych kluczy przy replikacji i shardingu.

Warto jednak pamiętać, że UUID zajmują 16 bajtów (vs 4-8 bajtów dla int/bigint), co zwiększa rozmiar indeksów. W bazach z indeksami B-tree losowe UUID v4 mogą powodować fragmentację — w takich przypadkach rozważ UUID v1 lub UUIDv7 (sortowalne czasowo).

Jak wygląda struktura UUID?

UUID składa się z 32 cyfr szesnastkowych (128 bitów) wyświetlanych w 5 grupach oddzielonych myślnikami: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx. Format to 8-4-4-4-12 znaków.

Litera M wskazuje numer wersji (np. 4 dla UUID v4), a litera N wariant (8, 9, a lub b dla RFC 4122). Pozostałe bity są losowe (v4) lub zawierają znacznik czasu i identyfikator węzła (v1).

Czy generator UUID zapisuje wygenerowane identyfikatory?

Nie. Cały proces generowania odbywa się lokalnie w przeglądarce za pomocą JavaScriptu. Żadne dane nie są przesyłane na serwer ani nigdzie przechowywane. Po zamknięciu lub odświeżeniu strony wygenerowane identyfikatory znikają bezpowrotnie.