Co to jest UUID v5?
Wersja UUID 5 to oparty na przestrzeni nazw 128-bitowy identyfikator (ciąg 36 znaków) zdefiniowany w RFC 4122. Łączy:
- UUID przestrzeni nazw: Predefiniowany lub niestandardowy UUID do zakresu generowania
- Name: Wartość ciągu zdefiniowana przez użytkownika w przestrzeni nazw
- SHA-1 hash: Algorytm kryptograficzny używany do wygenerowania wyniku
Przykład formatu: 2ed6657d-e927-5eb1-9a03-0242ac130003
Jak działa UUID v5
- Wybierz UUID przestrzeni nazw (predefiniowany lub niestandardowy)
- Połącz UUID przestrzeni nazw i ciąg nazwy
- Oblicz SHA-1 hash połączonej wartości
- Ustaw bity wersji (0101) i wariantu (10)
- Złóż jako 32 cyfry szesnastkowe z myślnikami: format 8-4-4-4-12
Zalety i uwagi
Advantages | Considerations |
---|---|
|
|
Struktura UUID v5
Bits | Content |
---|---|
0-47 | Pierwsze 48 bitów SHA-1 hash |
48-51 | Wersja (0101 dla v5) |
52-63 | Następne 12 bitów SHA-1 hash |
64-65 | Wariant (10 dla RFC4122) |
66-127 | Pozostałe 62 bity SHA-1 hash |
UUID v5 a inne wersje
Version | Oparte na | Przypadek użycia | Privacy |
---|---|---|---|
UUID v1 | Czas + MAC | Identyfikatory uporządkowane czasowo | ⚠️ Ujawnia MAC |
UUID v3 | Przestrzeń nazw + MD5 | Deterministyczne identyfikatory | ✅ Prywatne |
UUID v4 | Random | Bezpieczne losowe identyfikatory | ✅ Prywatne |
UUID v5 | Przestrzeń nazw + SHA-1 | Deterministyczne identyfikatory | ✅ Prywatne |
UUID v6 | Czas (przearanżowany) | Identyfikatory sortowalne | ⚠️ Ujawnia MAC |
UUID v7 | Czas + losowe | Identyfikatory sortowalne | ✅ Prywatne |
Predefiniowane przestrzenie nazw
Namespace | UUID | Purpose |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | Dla nazw domen |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | Dla URL |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | Dla ISO OID |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | Dla X.500 Distinguished Names |
Typowe zastosowania
- Adresowanie zawartości: Spójne identyfikatory dla identycznej zawartości
- Systemy rozproszone: Nazwane zasoby w różnych systemach
- Mapowanie URL: Konwersja URL na stabilne identyfikatory
- Zarządzanie konfiguracją: Śledzenie nazwanych elementów konfiguracji
- Deduplikacja danych: Identyfikacja identycznych rekordów
- Federation: Spójne identyfikatory między systemami
Najczęściej zadawane pytania
Czy UUID v5 jest lepszy niż UUID v3?
Tak, dla większości zastosowań. UUID v5 używa SHA-1, który jest kryptograficznie silniejszy niż algorytm MD5 używany w UUID v3. Jednak oba zapewniają deterministyczne generowanie.
Czy wartości UUID v5 mogą się zderzyć?
Kolizje są teoretycznie możliwe, ale w praktyce niezwykle mało prawdopodobne ze względu na właściwości SHA-1. Używanie różnych przestrzeni nazw lub ciągów nazw praktycznie eliminuje ryzyko kolizji.
Czy SHA-1 jest wystarczająco bezpieczny dla UUID v5?
Dla celów UUID, SHA-1 pozostaje odpowiedni pomimo swoich słabości kryptograficznych. UUID v5 nie jest przeznaczony do celów bezpieczeństwa, lecz do generowania spójnych identyfikatorów.
Czy mogę stworzyć własną przestrzeń nazw dla UUID v5?
Tak. Chociaż RFC 4122 definiuje standardowe przestrzenie nazw (DNS, URL, OID, X.500), możesz tworzyć niestandardowe przestrzenie nazw używając dowolnego ważnego UUID, zazwyczaj losowego UUID v4.
Czy ta sama nazwa zawsze wygeneruje ten sam UUID v5?
Tak, ale tylko w tej samej przestrzeni nazw. Ta sama nazwa w różnych przestrzeniach nazw wygeneruje różne UUID, co jest kluczową cechą organizacji identyfikatorów.