Generator UUID
Czym jest UUID i do czego służy?
UUID (Universally Unique Identifier) to 128-bitowy identyfikator zaprojektowany tak, aby był globalnie unikalny bez potrzeby centralnej koordynacji. Jest powszechnie używany w bazach danych, systemach rozproszonych, API oraz aplikacjach backendowych do identyfikowania rekordów, sesji, transakcji lub zasobów. Dzięki ogromnej liczbie możliwych kombinacji UUID praktycznie eliminuje ryzyko kolizji identyfikatorów nawet w bardzo dużych systemach.
Generowany na podstawie czasu i adresu MAC urządzenia. Zapewnia unikalność, ale może ujawniać informacje o systemie.
Deterministyczny UUID generowany na podstawie namespace i nazwy przy użyciu funkcji hashującej MD5.
Najpopularniejsza wersja — generowana losowo przy użyciu kryptograficznego generatora liczb losowych.
Podobny do v3, ale zamiast MD5 używa SHA-1. Często stosowany gdy potrzebna jest deterministyczność i większe bezpieczeństwo.
Struktura UUID
| Segment | Długość | Opis | Przykład |
|---|---|---|---|
time_low |
8 znaków | Pierwsza część identyfikatora; w v1 zawiera część znacznika czasu. | 550e8400 |
time_mid |
4 znaki | Druga część znacznika czasu. | e29b |
time_hi_and_version |
4 znaki | Zawiera wersję UUID. | 41d4 |
clock_seq |
4 znaki | Sekwencja zegara zapobiegająca kolizjom. | a716 |
node |
12 znaków | Identyfikator węzła (np. MAC w v1 lub losowe dane w v4). | 446655440000 |
Gdzie używa się UUID
UUID
UUID
UUID
UUID
UUID
UUID
Najczęściej zadawane pytania
UUID nie gwarantuje absolutnej unikalności matematycznej, ale prawdopodobieństwo kolizji jest ekstremalnie małe. W wersji v4 istnieje około 3.4×10^38 możliwych kombinacji, co w praktyce eliminuje ryzyko duplikatów.
UUID można generować niezależnie na wielu serwerach bez centralnej bazy. Dzięki temu świetnie sprawdza się w architekturze mikroserwisów i systemach rozproszonych.
Tak. UUID nie ujawnia kolejności rekordów ani liczby użytkowników, dlatego jest bezpieczniejszy niż identyfikatory inkrementacyjne w publicznych API lub linkach.
UUID ma 128 bitów, aby zapewnić ogromną przestrzeń identyfikatorów i zminimalizować ryzyko kolizji nawet w bardzo dużych systemach.
Może. UUID jako klucz główny bywa wolniejszy niż liczby całkowite, ponieważ jest większy i mniej uporządkowany. W wielu systemach stosuje się UUID w formacie binarnym lub tzw. UUIDv7/ULID dla lepszej indeksacji.
Zależy od wersji. UUID v1 zawiera informacje o czasie i MAC urządzenia, natomiast UUID v4 jest całkowicie losowy i nie zawiera żadnych danych możliwych do odczytania.