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
- 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.
- 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).
- Ustaw liczbę UUID — za pomocą pola lub suwaka wybierz od 1 do 100 identyfikatorów do wygenerowania.
- Kliknij "Generuj UUID" — identyfikatory pojawią się natychmiast w sekcji wyników.
- 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.