Generator UUID i dekoder — v1, v4, v5, v7 z trybem wsadowym
Generator UUID — twórz identyfikatory v1, v4, v5 i v7 natychmiast. Dekoduj i waliduj UUID. Wsadowo do 50. W 100% w przeglądarce.
Czym jest UUID?
UUID (Universally Unique Identifier) to 128-bitowy globalnie unikalny identyfikator znormalizowany przez RFC 9562 (IETF, maj 2024), zaprojektowany do generowania bezkolizyjnych identyfikatorów w systemach rozproszonych bez centralnej koordynacji. UUID to najszerzej stosowany format identyfikatora w nowoczesnym oprogramowaniu — wykorzystywany w kluczach głównych baz danych, śledzeniu żądań API, zarządzaniu sesjami oraz architekturach mikrousług.
UUID zapisuje się jako 32 cyfry szesnastkowe w kanonicznym formacie 8-4-4-4-12, na przykład `550e8400-e29b-41d4-a716-446655440000`. Specyfikację utrzymuje IETF; RFC 9562 zastępuje wcześniejsze RFC 4122 (2005) i formalnie wprowadza wersje UUID 6, 7 oraz 8.
W powszechnym użyciu jest pięć wersji UUID. Wersja 1 (v1) koduje bieżący timestamp i adres MAC maszyny generującej, dzięki czemu każdy UUID jest unikalny w czasie i przestrzeni. Wersje 3 (v3) i 5 (v5) są deterministyczne — hashują przestrzeń nazw oraz nazwę odpowiednio za pomocą MD5 lub SHA-1, zawsze dając ten sam UUID dla tych samych danych wejściowych. Wersja 4 (v4) jest najczęstsza: wypełnia 122 bity kryptograficznie bezpiecznymi danymi losowymi, dając ponad 5,3 × 10³⁶ możliwych wartości (RFC 9562, sekcja 5.4). Wersja 7 (v7) to najnowszy standard: jak stwierdza RFC 9562 w sekcji 5.7, „UUID w wersji 7 zawiera pole wartości uporządkowane czasowo, wyprowadzone z powszechnie zaimplementowanego i dobrze znanego źródła timestamp opartego na epoce Unix” — łącząc 48-bitowy timestamp w milisekundach z danymi losowymi w celu uzyskania UUID, które są jednocześnie unikalne i naturalnie sortowalne według czasu utworzenia.
UUID są niezbędne w systemach rozproszonych, bazach danych, API oraz wszędzie tam, gdzie potrzebne są unikalne identyfikatory bez scentralizowanej koordynacji. Eliminują ryzyko kolizji identyfikatorów między niezależnymi systemami, dzięki czemu doskonale sprawdzają się w mikrousługach, event sourcing oraz architekturach wielodostępnych.
Narzędzie generuje wszystkie wersje UUID w całości w przeglądarce za pomocą Web Crypto API — żaden UUID nie jest przesyłany na serwer. W przeciwieństwie do generatorów serwerowych nie ma tu przesyłania danych, logowania ani ich przechowywania. Można bezpiecznie używać go do produkcyjnych kluczy baz danych, identyfikatorów API oraz aplikacji o podwyższonych wymaganiach bezpieczeństwa. Można także dekodować i walidować istniejące UUID, aby sprawdzić ich wersję, wariant oraz osadzone dane.
UUID są ściśle powiązane z innymi prymitywami programistycznymi. UUID v1 i v7 osadzają bezpośrednio timestamp Unix, UUID v3 i v5 wykorzystują hash MD5 i SHA-1 jako fundament, a ciągi UUID są często przesyłane wewnątrz payload-ów JSON, które najlepiej oglądać w narzędziu do formatowania JSON. Pełne wprowadzenie do formatu, wersji i praktycznych zastosowań UUID znajduje się w naszym kompletnym przewodniku po UUID. Przy wyborze między UUID v4, v7, ULID a Snowflake jako kluczem głównym bazy danych warto sięgnąć po nasze porównanie identyfikatorów.
// Generate a UUID v4 using the Web Crypto API
const uuid = crypto.randomUUID();
console.log(uuid);
// → '550e8400-e29b-41d4-a716-446655440000'
// Manual v4 generation with crypto.getRandomValues()
function generateUUIDv4() {
const bytes = new Uint8Array(16);
crypto.getRandomValues(bytes);
bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4
bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 10
const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
return `${hex.slice(0,8)}-${hex.slice(8,12)}-${hex.slice(12,16)}-${hex.slice(16,20)}-${hex.slice(20)}`;
} Najważniejsze funkcje
Wsparcie dla UUID v7 (RFC 9562)
Generuje najnowszy format UUID v7 z osadzonym timestamp Unix dla uporządkowanych czasowo identyfikatorów przyjaznych bazom danych. Jedno z nielicznych narzędzi online wspierających standard RFC 9562.
Dekoder i walidator UUID
Parsuje dowolny UUID, aby ujawnić jego wersję, wariant, timestamp (v1/v7), sekwencję zegara oraz informacje o węźle. Natychmiast sprawdza, czy ciąg ma poprawnie sformatowany UUID.
Wsparcie dla wielu wersji
Generuje UUID w pięciu wersjach — v1 (czasowy), v3 (MD5), v4 (losowy), v5 (SHA-1) oraz v7 (losowy uporządkowany czasowo) — wszystkie zgodne z RFC 9562.
Generowanie wsadowe
Pozwala wygenerować jednorazowo do 50 unikalnych UUID. Każdy powstaje niezależnie z pełną losowością kryptograficzną lub poprawnym kodowaniem właściwym dla wersji.
Wiele formatów wyjściowych
Wynik można uzyskać w formacie standardowym małymi literami, WIELKIMI LITERAMI, bez myślników lub w nawiasach klamrowych {GUID} — pasującym do dokładnego formatu wymaganego przez system lub framework.
Bezpieczeństwo kryptograficzne
Wykorzystuje Web Crypto API (crypto.getRandomValues()) do prawdziwie losowego generowania liczb — ten sam standard, który stosują nowoczesne przeglądarki i narzędzia bezpieczeństwa.
W 100% w przeglądarce
Wszystkie UUID powstają lokalnie w przeglądarce. Nic nie jest wysyłane na serwer — wygenerowane identyfikatory pozostają w pełni prywatne.
Porównanie wersji UUID
Wybór odpowiedniej wersji UUID zależy od konkretnego zastosowania.
| Wersja | Podstawa | Sortowalne | Prywatność | Zastosowanie |
|---|---|---|---|---|
| v1 | Timestamp + adres MAC | Według czasu utworzenia | Ujawnia adres MAC i czas | Starsze systemy wymagające porządku czasowego |
| v4 | 122 bity kryptograficznie losowe | Nie | Pełna anonimowość | Ogólne zastosowanie — najszerzej stosowana wersja |
| v5 | Hash SHA-1 z przestrzeni nazw + nazwy | Nie | Deterministyczna, powtarzalna | Spójne identyfikatory ze znanych danych (URL, DNS) |
| v7 | Timestamp Unix (ms) + losowość | Według czasu utworzenia | Ujawnia tylko czas utworzenia | Nowoczesne bazy danych — sortowalne, przyjazne indeksom (RFC 9562) |
UUID a inne formaty identyfikatorów
ULID
26 znaków, Crockford Base32Sortowalny leksykograficznie podobnie jak UUID v7, ale stosuje kodowanie Crockford Base32 (26 znaków zamiast 36). UUID v7 jest obecnie standaryzowaną przez IETF alternatywą o szerszym wsparciu narzędziowym.
nanoid
21 znaków, alfabet bezpieczny dla URLKrótszy i bezpieczny dla URL, idealny tam, gdzie liczy się zwięzłość. Nie jest formalnym standardem — brakuje mu natywnych typów w bazach danych i bibliotek wieloplatformowych dostępnych dla UUID.
CUID2
Zmienna długość, alfanumerycznyZaprojektowany pod skalowanie horyzontalne z odpornością na kolizje. Mniej rozpowszechniony niż UUID; brak natywnego wsparcia w bazach danych. Dla standaryzowanych identyfikatorów sortowanych czasowo lepszym wyborem jest UUID v7.
Przykłady wersji UUID
UUID v4 (losowy)
550e8400-e29b-41d4-a716-446655440000
Najczęściej używana wersja. 122 bity kryptograficznej losowości dają ponad 5,3 × 10³⁶ możliwych wartości — wystarczająco do praktycznie każdego zastosowania, w którym wymagana jest unikalność bez koordynacji.
UUID v7 (uporządkowany czasowo)
01906b5e-4a3e-7234-8f56-b8c12d4e5678
Łączy 48-bitowy timestamp Unix w milisekundach z danymi losowymi. UUID są sortowane chronologicznie, co czyni je idealnymi jako klucze główne baz danych, gdzie liczy się lokalność indeksu. Zalecany dla nowych projektów zamiast v1 i v4.
UUID v1 (czasowy)
6ba7b810-9dad-11d1-80b4-00c04fd430c8
Koduje 60-bitowy timestamp i 48-bitowy adres MAC maszyny generującej. Gwarantuje unikalność w czasie i przestrzeni, ale może ujawniać identyfikatory sprzętu. Zastąpiony przez v6/v7 w RFC 9562.
UUID v5 (oparty na nazwie SHA-1)
886313e1-3b8a-5372-9b90-0c9aee199e5d
Deterministyczny UUID powstały przez hashowanie przestrzeni nazw DNS z nazwą „python.org” za pomocą SHA-1. Ta sama przestrzeń nazw i ta sama nazwa zawsze dają ten sam UUID, dzięki czemu v5 doskonale nadaje się do powtarzalnych identyfikatorów.
Jak używać
- 1
Wybierz wersję UUID
Należy wybrać spośród v1 (czasowy), v3 (oparty na nazwie i MD5), v4 (losowy), v5 (oparty na nazwie i SHA-1) lub v7 (losowy uporządkowany czasowo). Każda wersja ma inne przeznaczenie — v4 jest najczęściej stosowana do ogólnych zastosowań.
- 2
Skonfiguruj opcje
Dla v3 i v5 należy wybrać przestrzeń nazw (DNS, URL, OID, X.500 lub własną) i wpisać nazwę do hashowania. Następnie należy ustawić ilość od 1 do 50 oraz wybrać format wyjściowy: standardowy małymi literami, WIELKIMI LITERAMI, bez myślników lub w nawiasach klamrowych {GUID}.
- 3
Wygeneruj UUID
Wystarczy kliknąć przycisk generowania. Każdy UUID powstaje przy użyciu Web Crypto API (crypto.getRandomValues()) zapewniającego bezpieczeństwo kryptograficzne. Pola właściwe dla danej wersji, takie jak timestamp (v1/v7) czy hash (v3/v5), są kodowane poprawnie.
- 4
Skopiuj i użyj
Kliknięcie przycisku „Kopiuj” obok dowolnego UUID przenosi go do schowka, a „Kopiuj wszystko” pobiera od razu wszystkie wygenerowane identyfikatory. Zakładka dekodowania pozwala przeanalizować istniejący UUID — jego wersję, wariant, timestamp oraz pozostałe osadzone informacje.
Typowe zastosowania
- Klucze główne baz danych
- UUID v4 lub v7 sprawdzają się jako unikalne klucze główne bez koordynacji między węzłami bazy danych. UUID v7 jest szczególnie odpowiedni, ponieważ jego porządek czasowy poprawia wydajność indeksów B-tree.
- Systemy rozproszone
- Pozwala generować unikalne identyfikatory niezależnie w mikrousługach, kolejkach komunikatów oraz systemach event sourcing. UUID eliminują potrzebę istnienia centralnej usługi przydzielającej identyfikatory.
- Tworzenie API
- Tworzenie unikalnych identyfikatorów żądań, identyfikatorów korelacyjnych i kluczy idempotencji dla API REST i GraphQL. UUID ułatwiają śledzenie żądań przez granice rozproszonych usług.
- Zarządzanie sesjami i token-ami
- Generowanie unikalnych identyfikatorów sesji i tymczasowych token-ów dla przepływów uwierzytelniania. UUID dają wystarczającą unikalność, by zapobiegać kolizjom sesji nawet przy dużej liczbie użytkowników.
- Testowanie i development
- Szybkie generowanie danych testowych, identyfikatorów mockowych i unikalnych identyfikatorów fixtur w testach automatycznych. Generowanie wsadowe ułatwia zapełnianie deweloperskich baz danych i zestawów testowych.
Szczegóły techniczne
- Struktura UUID
- UUID ma 128 bitów (16 bajtów) reprezentowanych jako 32 znaki szesnastkowe w formacie 8-4-4-4-12. Bity 48–51 (13. cyfra szesnastkowa) kodują numer wersji. Bity 64–65 kodują pole wariantu, które identyfikuje układ UUID. Pozostałe bity przenoszą zawartość właściwą dla wersji: timestamp, dane losowe lub wynik hash.
- Bity wersji
- Bity 48–51 (wyższy półbajt 7. bajtu) kodują wersję UUID: 0001 = v1 (czasowy), 0011 = v3 (oparty na nazwie z MD5), 0100 = v4 (losowy), 0101 = v5 (oparty na nazwie z SHA-1), 0110 = v6 (przeporządkowany czasowo), 0111 = v7 (oparty na epoce Unix). Te cztery bity są zawsze ustawiane jawnie podczas generowania.
- Pole wariantu
- Bity 64–65 (dwa najbardziej znaczące bity 9. bajtu) definiują wariant. Wzorzec 10x oznacza UUID zgodne z RFC 4122/9562 (zdecydowana większość). Wzorzec 110 oznacza GUID-y Microsoftu z mieszaną kolejnością bajtów. Wzorzec 0xx oznacza UUID kompatybilne wstecz z NCS (legacy). Wzorzec 111 jest zarezerwowany do przyszłego użytku.
- Standard RFC 9562
- RFC 9562, opublikowany w maju 2024, zastępuje RFC 4122 jako definitywną specyfikację UUID. Formalnie wprowadza wersje UUID 6, 7 i 8. Wersja 6 przeporządkowuje pola v1 dla sortowalności. Wersja 7 wykorzystuje 48-bitowy timestamp Unix w milisekundach plus dane losowe, co czyni ją zalecaną wersją dla nowych UUID czasowych. Wersja 8 udostępnia format dla niestandardowych UUID specyficznych dla implementacji. RFC 9562 formalnie deprecjonuje także v1 na rzecz v6/v7.
Dobre praktyki
- Wybór odpowiedniej wersji
- Wersji v4 używa się do uniwersalnych unikalnych identyfikatorów, gdy nie jest potrzebny porządek ani determinizm. Wersję v7 stosuje się do kluczy głównych baz danych — jej porządek czasowy wyraźnie poprawia wydajność indeksów. Wersję v5 wybiera się, gdy potrzeba deterministycznych identyfikatorów wyprowadzanych z nazw (lepiej v5 niż v3 ze względu na silniejsze hashowanie).
- UUID v7 jako klucze główne baz danych
- Porządek czasowy UUID v7 utrzymuje sekwencyjność wstawień w indeksach B-tree, ograniczając fragmentację indeksu o około 90% w porównaniu z losowymi UUID v4. Przekłada się to na szybsze zapisy, mniejsze indeksy i lepsze wykorzystanie cache. Większość nowoczesnych baz danych (PostgreSQL 17+, MySQL 8.0+) ma natywne wsparcie UUID zoptymalizowane pod ten wzorzec.
- UUID nie nadają się jako tokeny bezpieczeństwa
- UUID są zaprojektowane do unikalności, nie do tajności. UUID v1 ujawnia timestamp generowania i adres MAC. UUID v4 ma jedynie 122 bity entropii w przewidywalnej strukturze. Do tokenów bezpieczeństwa, kluczy API czy sekretów sesji należy używać dedykowanego CSPRNG generującego 128 lub 256 bitów czysto losowych danych — bez narzutu strukturalnego UUID.
- Walidacja przed parsowaniem
- Format UUID należy zawsze walidować wyrażeniem regex przed parsowaniem lub zapisem. Niepoprawne dane wejściowe trzeba odrzucać już na granicach systemu — w endpoint-ach API, w obsłudze formularzy i przy zapisie do bazy. Zapobiega to atakom przez wstrzyknięcie, uszkodzeniom danych oraz trudnym do zdiagnozowania błędom wynikającym z propagacji nieprawidłowych identyfikatorów w systemie.
Najczęściej zadawane pytania
Czym jest UUID?
Jakie są różnice między wersjami UUID?
Kiedy stosować UUID v4, a kiedy v7?
Jakie jest prawdopodobieństwo kolizji UUID?
Jaka jest różnica między UUID a GUID?
Czy UUID v4 jest kryptograficznie bezpieczny?
Jak walidować format UUID?
Czy UUID to dobre klucze główne bazy danych? (wydajność, bezpieczeństwo i najlepsza wersja)
Czym jest przestrzeń nazw UUID (v3/v5)?
Czym jest wartość nil UUID?
Czym jest UUID v7 i dlaczego warto go używać?
Jak dekodować UUID?
UUID a ULID a nanoid — co wybrać?
Buduję mikrousługę i muszę wybrać między UUID v4 a v7 jako kluczem głównym w PostgreSQL — co wybrać i dlaczego?
Mój zespół zastanawia się, czy używać UUID, czy liczb auto-increment jako identyfikatorów bazy danych — jakie są realne kompromisy?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Dekoder JWT
Narzędzia bezpieczeństwa
Dekoduj JWT online darmowym dekoderem JWT. Sprawdź header, payload, signature, claims i wygaśnięcie. W 100% w przeglądarce — token nie opuszcza urządzenia.
Generator MD5 hash i sum kontrolnych plików
Narzędzia bezpieczeństwa
Generuj hashe MD5, SHA-256, SHA-1 oraz SHA-512 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne i kopiuj wyniki. Bez rejestracji.
Generator haseł — konfigurowalny, silny i bezpieczny
Narzędzia bezpieczeństwa
Wygeneruj silne losowe hasła natychmiast — za darmo, w 100% w przeglądarce. Dostosuj długość i znaki, partia do 50 z analizą entropii.
Konwerter systemów liczbowych — binary, hex, decimal i octal
Narzędzia konwersji
Konwertuj między systemami binarnym, szesnastkowym, dziesiętnym i ósemkowym (2–36) w czasie rzeczywistym. Bezpłatnie i prywatnie — w przeglądarce.
Koder i dekoder Base64
Kodowanie i formatowanie
Zakoduj i zdekoduj Base64 online za darmo. Konwersja w czasie rzeczywistym z pełną obsługą UTF-8 i emoji. 100% w przeglądarce, bez rejestracji.
Kompresor obrazów online — JPEG, PNG i WebP
Narzędzia konwersji
Kompresja JPEG, PNG i WebP nawet o 80% — w przeglądarce, bez przesyłania na serwer. Wsadowo do 20 obrazów, porównanie przed i po. Prywatnie.