Wersje UUID
Szczegółowy przewodnik po wszystkich wersjach UUID i ich zastosowaniach.
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
Wersja 7 (Unix Epoch)
ZALECANYNowy 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
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
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"
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 |