Generator UUID v4

Generuj łatwo UUID v4 (Uniwersalne Unikalne Identyfikatory) za pomocą naszego narzędzia do generowania UUID v4 dla unikalnej identyfikacji.

5 z 2 ocen
Generator UUID v4

Generator UUID v4 to bezpłatne narzędzie, które tworzy uniwersalny unikatowy identyfikator w wersji 4. Możesz go wykorzystać jako identyfikator rekordu, obiektu lub żądania.

Jak Generator UUID v4 przetwarza moje dane?

Generowanie odbywa się na serwerze. Dane wejściowe są przesyłane na serwer przez HTTPS i nie są przechowywane. Nie można więc stwierdzić, że cały proces przebiega w przeglądarce ani że dane nigdy nie opuszczają Twojego urządzenia.

UUID v4 nie wymaga podawania jako źródła danych osobowych, nazwy ani hasła. Jest generowany jako identyfikator, a nie obliczany na podstawie przekazanych przez Ciebie informacji. Nie przypisuj otrzymanej wartości poufnego znaczenia, ponieważ każdy, kto ją zobaczy, może ją skopiować i ponownie wykorzystać.

Czym jest UUID v4?

UUID v4 to 128-bitowy identyfikator, którego zmienna część jest generowana losowo lub pseudolosowo. Kilka bitów jest zarezerwowanych na oznaczenie wersji i wariantu UUID. Stosuje się go często, gdy niezależne systemy muszą tworzyć identyfikatory bez wcześniejszego pobierania kolejnego dostępnego numeru z centralnej usługi.

Standardowy zapis zawiera 32 znaki szesnastkowe podzielone łącznikami na pięć grup. Ma układ 8-4-4-4-12, a po uwzględnieniu czterech łączników liczy 36 znaków.

Przykładem poprawnym składniowo jest 550e8400-e29b-41d4-a716-446655440000. W UUID w wersji 4 pierwszym znakiem trzeciej grupy jest 4. Dwa najbardziej znaczące bity określające wariant mają wartość 10, dlatego czwarta grupa zaczyna się od znaku szesnastkowego 8, 9, a lub b.

Ta wartość jest identyfikatorem, a nie zakodowaną informacją. Nie da się jej zdekodować, aby odzyskać datę utworzenia, nazwę konta, adres urządzenia ani numer sekwencyjny.

Którą wersję UUID wybrać?

Wybierz wersję 4, jeśli potrzebujesz niezależnie generowanego, nieprzejrzystego identyfikatora i nie zależy Ci na tym, aby te same dane wejściowe zawsze dawały ten sam wynik. W skrócie: v1 wykorzystuje czas i informacje o węźle, v2 jest formatem DCE Security, v3 wyprowadza UUID z przestrzeni nazw i nazwy za pomocą MD5, v4 jest losowy, v5 wyprowadza UUID za pomocą SHA-1, v6 zmienia kolejność danych opartych na czasie, v7 łączy znacznik czasu Unix z danymi losowymi, a v8 służy do formatów eksperymentalnych lub specyficznych dla dostawcy.

  • Używaj UUID v4 jako identyfikatorów rekordów, odwołań do przesłanych plików, identyfikatorów żądań API i danych testowych, jeśli odpowiednie są losowo rozłożone identyfikatory.
  • Używaj UUID v5, gdy określona przestrzeń nazw i nazwa muszą zawsze dawać ten sam identyfikator. Sprawdza się to przy powtarzalnych importach i regułach usuwania duplikatów.
  • Rozważ UUID v7, jeśli identyfikatory rekordów powinny w przybliżeniu odzwierciedlać kolejność ich tworzenia, a Twoja baza danych lub oprogramowanie obsługuje tę wersję.
  • Użyj zwykłej liczby całkowitej zwiększanej sekwencyjnie, jeśli wartości tworzy jedna baza danych, a zwarte klucze o naturalnej kolejności są ważniejsze niż zdecentralizowane generowanie.

Starsze wersje nadal występują w istniejących systemach, ale w nowym projekcie wybierz wersję odpowiadającą rzeczywistym wymaganiom. Nie traktuj wszystkich wersji UUID jako zamiennych.

Przykładowy wynik wygenerowany przez narzędzie Generator UUID v4

Jak używać UUID v4 w praktyce?

Wygeneruj UUID, skopiuj wartość z pola wyniku UUID v4 i zapisz pełny ciąg w postaci kanonicznej, chyba że system docelowy wymaga innego formatu.

  1. Utwórz nowy UUID dla obiektu lub zdarzenia, które wymaga identyfikatora.
  2. Podczas przekazywania wartości między systemami zachowaj wszystkie pięć grup i cztery łączniki.
  3. Jeśli baza danych udostępnia typ UUID, użyj go do przechowywania wartości. W przeciwnym razie wybierz pole tekstowe lub binarne o rozmiarze odpowiednim dla przyjętej reprezentacji.
  4. Dodaj ograniczenie unikatowości, jeśli baza danych ma odrzucać zduplikowane wartości UUID v4.
Narzędzie Generator UUID v4 w serwisie digily.link wraz z formularzem wprowadzania danych

UUID v4 może służyć między innymi do identyfikowania zamówienia, zanim trafi ono do głównej bazy danych, łączenia wpisów dziennika z kilku usług, nadawania nazwy przesłanemu obiektowi lub przypisywania stałych identyfikatorów wierszom przygotowanym do importu. UUID zwykle ułatwia scalanie niezależnie utworzonych zbiorów danych bardziej niż lokalne sekwencje liczb całkowitych, które w każdym źródle mogą zawierać te same wartości.

Spacje, znaki interpunkcyjne, litery ze znakami diakrytycznymi i znaki spoza alfabetu łacińskiego nie stanowią problematycznych danych wejściowych dla UUID v4, ponieważ identyfikator nie jest wyprowadzany z tekstu. Jeśli potrzebujesz identyfikatora opartego na nazwie zawierającej takie znaki, użyj schematu UUID bazującego na nazwie oraz dokładnie określ kodowanie znaków i reguły normalizacji. W przeciwnym razie teksty wyglądające identycznie mogą tworzyć różne sekwencje bajtów, a w efekcie różne identyfikatory.

Czy dwa identyfikatory UUID v4 mogą być takie same?

Tak, kolizja jest teoretycznie możliwa, ale przy typowym zastosowaniu UUID v4 nie stanowi praktycznego problemu, o ile generator korzysta z odpowiedniego źródła losowości. UUID v4 ma 122 bity zmienne, ponieważ pozostałe bity określają jego wersję i wariant. Pozostawia to niezwykle duży zbiór możliwych wartości.

Określenie "uniwersalnie unikatowy" ma więc znaczenie praktyczne, a nie stanowi matematycznej gwarancji. Przypadkowe skopiowanie lub ponowne użycie wartości, błędy implementacji oraz słabe generowanie liczb losowych przy nieodpowiednim źródle losowości stwarzają bardziej realne ryzyko duplikacji niż sam przypadek. Systemy, które nie mogą dopuścić do duplikatów, powinny mimo to wymuszać unikatowość na poziomie bazy danych lub aplikacji.

UUID nie potwierdza również autentyczności żądania. Nie używaj widocznego UUID jako jedynej podstawy autoryzacji i nie zakładaj, że obiekt jest chroniony tylko dlatego, że jego adres trudno odgadnąć. Kontrola dostępu powinna obejmować właściwy zasób wskazywany przez UUID.

Najczęściej zadawane pytania

Czy w UUID wielkość liter ma znaczenie?

Nie. Litery szesnastkowe w tekstowym zapisie UUID zwykle interpretuje się bez rozróżniania wielkości, dlatego A i a oznaczają tę samą wartość. Kanoniczny zapis najczęściej używa małych liter. Ujednolicenie wielkości liter przed porównaniem tekstowym pozwala uniknąć niespójnych wyników w systemach, które podczas porównywania ciągów rozróżniają wielkie i małe litery.

Czy mogę użyć UUID v4 w adresie URL lub nazwie pliku?

Tak. Postać kanoniczna zawiera znaki szesnastkowe i łączniki, które nadają się do zwykłych segmentów ścieżki URL oraz popularnych systemów plików. Nie dodawaj nawiasów klamrowych, chyba że wymaga ich konkretne API. Pamiętaj też, że ujawnienie UUID w adresie URL nie czyni zasobu prywatnym.

Czy usuwać łączniki z UUID?

Usuń je tylko wtedy, gdy format docelowy wyraźnie wymaga 32 znaków szesnastkowych. Wiele bibliotek i typów UUID w bazach danych obsługuje kanoniczną postać z łącznikami. Jest ona łatwiejsza do rozpoznania i trudniej pomylić ją z niezwiązaną wartością szesnastkową.

Czy UUID v4 nadaje się na hasło lub sekret API?

Nie. Identyfikator i sekret służą do innych celów. Niektóre implementacje UUID mogą korzystać z odpowiedniego źródła losowości, ale sam format UUID nie zapewnia sposobu obsługi, poufności ani poziomu entropii wymaganego od haseł, tokenów sesji i danych uwierzytelniających API. Dane uwierzytelniające i tokeny generuj za pomocą mechanizmu przeznaczonego do tego celu, a nie generatora UUID v4.

Czy UUID v4 może być daną osobową w rozumieniu RODO?

Tak. UUID może być daną osobową, jeśli identyfikuje osobę lub można go powiązać z możliwą do zidentyfikowania osobą, nawet gdy same znaki nie ujawniają bezpośrednio jej imienia ani nazwiska. UUID powiązane z kontami klientów, urządzeniami lub rejestrami aktywności traktuj zgodnie z kontekstem oraz obowiązującymi w organizacji zasadami przechowywania i dostępu.

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

Tak, wiele baz danych obsługuje klucze główne UUID bezpośrednio. Losowo rozłożone klucze mogą powodować wstawianie wpisów do indeksu w mniej skupiony sposób niż uporządkowane liczby całkowite lub identyfikatory oparte na czasie, dlatego w przypadku tabel intensywnie obciążonych zapisem sprawdź zalecenia dotyczące danej bazy. Zachowaj ograniczenie unikatowości i konsekwentnie stosuj jeden sposób przechowywania wartości w importach, zapytaniach i kodzie aplikacji.

Popularne narzędzia