Przejdź do głównej treści

Wersje UUID

Szczegółowy przewodnik po wszystkich wersjach UUID i ich zastosowaniach.

v4

Wersja 4 (Losowa)

Całkowicie losowy UUID. Najczęściej używana wersja.

Zalety

  • • Najprostsza implementacja
  • • Kryptograficznie bezpieczny
  • • Nie ujawnia żadnych informacji
  • • Najczęściej używany

Wady

  • • Niesortowalny
  • • Fragmentacja indeksów w DB
Najlepszy dla: Ogólnego użytku, tokenów bezpieczeństwa, gdy kolejność nie ma znaczenia
v7

Wersja 7 (Unix Epoch)

ZALECANY

Nowy standard z uniksowym znacznikiem czasu. Sortowalny i przyjazny dla baz danych.

Zalety

  • • Sortowalny chronologicznie
  • • Doskonały dla indeksów DB
  • • Zawiera timestamp
  • • Nowy standard (RFC 9562)

Wady

  • • Ujawnia przybliżony czas
  • • Nowszy, mniej wsparcia
Najlepszy dla: Kluczy głównych w bazach danych, logów, wydarzeń z kolejnością czasową
v1

Wersja 1 (Czasowa)

Generowana na podstawie znacznika czasu i adresu MAC. Idealna dla systemów rozproszonych.

Zalety

  • • Unikalność na poziomie sprzętu
  • • Zawiera timestamp

Wady

  • • Ujawnia adres MAC
  • • Problem prywatności
  • • Nie dla bezpieczeństwa
v3
v5

Wersja 3 (Hash MD5) & Wersja 5 (Hash SHA-1)

Wersje oparte na hashach - generują deterministyczny UUID z przestrzeni nazw i nazwy. V3 używa MD5, V5 używa SHA-1 (bezpieczniejszy).

Przykład użycia

namespace: "6ba7b810-9dad-11d1-80b4-00c04fd430c8" (DNS)
name: "example.com"
→ UUID v5: "cfbff0d1-9375-5685-968c-48ce8b15ae17"
Najlepszy dla: Gdy potrzebujesz tego samego UUID dla tych samych danych wejściowych (idempotentność)

Porównanie wersji

Wersja Źródło Sortowalny Bezpieczny Użycie
v1 Time + MAC ~ Systemy rozproszone
v3 MD5 hash ~ Deterministyczne ID
v4 Random Ogólne zastosowanie
v5 SHA-1 hash Deterministyczne ID
v7 Unix time + random Klucze główne DB