Skip to main content
CheckTown
Walidatory

Walidator UUID: Jak sprawdzic format i wersje dowolnego UUID

Opublikowano 6 min czytania
W tym artykule

Czym jest UUID?

UUID (Universally Unique Identifier) to 128-bitowa wartość używana do unikalnej identyfikacji informacji w systemach komputerowych. Zapisany jako 32 cyfry szesnastkowe wyświetlane w pieciu grupach oddzielonych myślnikami, UUID wygląda jak 550e8400-e29b-41d4-a716-446655440000.

UUID sa zaprojektowane tak, aby byc globalnie unikalne bez potrzeby centralnego organu rejestracyjnego. Dzięki temu sa idealne dla systemow rozproszonych, gdzie wiele węzłów musi niezależnie generowac identyfikatory, ktore nigdy sie nie powtorza.

Wersje UUID

Standard UUID definiuje kilka wersji, kazda z inna metoda generowania. Numer wersji pojawia sie jako 13. znak.

  • Wersja 1 (v1) — oparta na czasie: łączy bieżący znacznik czasu z adresem MAC maszyny. Gwarantuje unikalność, ale ujawnia informacje o sprzęcie
  • Wersja 3 (v3) — oparta na nazwie z MD5: generuje deterministyczny UUID przez haszowanie przestrzeni nazw i nazwy za pomoca MD5
  • Wersja 4 (v4) — losowa: najczęściej używana wersja. Wszystkie bity oprocz pol wersji i wariantu sa generowane losowo
  • Wersja 5 (v5) — oparta na nazwie z SHA-1: jak v3, ale używa SHA-1. Preferowana nad v3 dla nowych implementacji
  • Wersja 7 (v7) — losowa uporzadkowana czasowo: nowszy format łączący znacznik czasu Unix z losowymi bitami

Wypróbuj za darmo — bez rejestracji

Zwaliduj UUID →

Jak działa walidacja UUID

Walidacja UUID obejmuje sprawdzenie zarowno formatu, jak i regul strukturalnych. Prawidłowy UUID musi odpowiadac kanonicznemu wzorcowi szesnastkowemu 8-4-4-4-12.

  • Sprawdzenie formatu — ciag musi zawierac dokładnie 32 znaki szesnastkowe ulozoone w pieciu grupach oddzielonych czterema myślnikami
  • Sprawdzenie wersji — 13. znak musi byc prawidłowym numerem wersji (1, 2, 3, 4, 5, 6, 7 lub 8)
  • Sprawdzenie wariantu — 17. znak musi wskazywac wariant RFC 4122 (8, 9, a lub b)

Typowe zastosowania

UUID sa domyślnym wyborem identyfikatorow w wielu dziedzinach nowoczesnego rozwoju oprogramowania.

  • Klucze główne bazy danych — UUID pozwalaja generowac klucze po stronie klienta bez podróży w obie strony do bazy danych
  • Identyfikatory zasobow API — eksponowanie UUID zamiast sekwencyjnych liczb całkowitych zapobiega atakom wyliczeniowym
  • Identyfikatory sesji i korelacji — UUID sledzą żądania przez mikroserwisy
  • Nazewnictwo plikow i obiektow — systemy przechowywania w chmurze używają UUID, aby unikac kolizji nazw

Najlepsze praktyki

Wybor odpowiedniej wersji UUID i prawidłowe ich obslugiwanie moze zapobiec subtelnym błędom i problemom z wydajnością.

  • Używaj v4 dla ogolnych losowych identyfikatorow — to najczęstszy wybor bez zewnętrznych zależności
  • Używaj v7, gdy potrzebujesz identyfikatorow sortowalnych czasowo — UUID v7 sortuja sie chronologicznie
  • Przechowuj UUID jako 16-bajtowy format binarny w bazach danych zamiast 36-znakowych ciągów
  • Zawsze waliduj UUID otrzymane z zewnętrznych źródeł — nigdy nie zakladaj, ze ciągi podane przez użytkowników sa poprawnie sformatowane

Często zadawane pytania

Czy dwa UUID moga byc identyczne?

Choc teoretycznie możliwe, prawdopodobieństwo kolizji z UUID v4 jest astronomicznie niskie. Trzeba by wygenerowac około 2,7 tryliona UUID, aby miec 50 procent szansy na pojedyncza kolizje.

Czy UUID rozróżnia wielkość liter?

Nie. Standard RFC 4122 określa, ze UUID powinny byc wyświetlane małymi literami, ale implementacje musza akceptowac zarowno duze, jak i male litery jako równoważne.

Powinienem używać UUID czy ULID?

ULID to 128-bitowe identyfikatory, ktore sa leksykograficznie sortowalne. Jeśli potrzebujesz sortowalnosci bez złożoności UUID v7, ULID sa dobra alternatywa.

Powiązane narzędzia