Ano ang UUID v5?
UUID bersyon 5 ay isang namespace-based na 128-bit na identifier (36-na-character na string) na tinukoy sa RFC 4122. Pinagsasama nito:
- Namespace UUID: Paunang-tukoy o custom na UUID para sa saklaw ng pagbuo
- Name: User-defined na string na halaga sa loob ng namespace
- SHA-1 hash: Cryptographic algorithm na ginamit upang makabuo ng resulta
Halimbawa ng format: 2ed6657d-e927-5eb1-9a03-0242ac130003
Paano gumagana ang UUID v5
- Pumili ng namespace UUID (paunang-tukoy o custom)
- Pagsamahin ang namespace UUID at ang pangalan ng string
- Kalkulahin ang SHA-1 hash ng pinagsamang halaga
- Itakda ang version bits (0101) at variant bits (10)
- Buuin bilang 32 hex na digit na may hyphens: 8-4-4-4-12 na format
Mga Bentahe at Pagsasaalang-alang
Advantages | Considerations |
---|---|
|
|
Estruktura ng UUID v5
Bits | Content |
---|---|
0-47 | Unang 48 bits ng SHA-1 hash |
48-51 | Bersyon (0101 para sa v5) |
52-63 | Susunod na 12 bits ng SHA-1 hash |
64-65 | Variant (10 para sa RFC4122) |
66-127 | Natitirang 62 bits ng SHA-1 hash |
UUID v5 kumpara sa ibang mga bersyon
Version | Batay sa | Gamit | Privacy |
---|---|---|---|
UUID v1 | Oras + MAC | Mga ID na nakaayos ayon sa oras | ⚠️ Ipinapakita ang MAC |
UUID v3 | Namespace + MD5 | Deterministikong mga ID | ✅ Pribado |
UUID v4 | Random | Secure random na mga ID | ✅ Pribado |
UUID v5 | Namespace + SHA-1 | Deterministikong mga ID | ✅ Pribado |
UUID v6 | Oras (muling inayos) | Mga ID na maaaring i-sort | ⚠️ Ipinapakita ang MAC |
UUID v7 | Oras + random | Mga ID na maaaring i-sort | ✅ Pribado |
Mga Paunang-tukoy na Namespace
Namespace | UUID | Purpose |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | Para sa mga domain name |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | Para sa mga URL |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | Para sa ISO OID |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | Para sa X.500 Distinguished Names |
Karaniwang mga Gamit
- Pag-address ng nilalaman: Mga consistent na ID para sa magkaparehong nilalaman
- Distributed systems: Mga pinangalanang resources sa iba't ibang sistema
- URL mapping: Pag-convert ng mga URL sa matatag na mga identifier
- Configuration management: Pagsubaybay sa mga pinangalanang configuration item
- Data deduplication: Pagkilala sa magkaparehong mga tala
- Federation: Consistent na mga identifier sa iba't ibang sistema
Mga Madalas Itanong
Mas maganda ba ang UUID v5 kaysa UUID v3?
Oo, para sa karamihan ng mga gamit. Ang UUID v5 ay gumagamit ng SHA-1 na mas malakas sa cryptographic kaysa sa MD5 algorithm na ginagamit sa UUID v3. Gayunpaman, pareho silang nagbibigay ng deterministikong pagbuo.
Posible bang mag-collide ang mga UUID v5?
Teoretikal na posible ang mga collision ngunit napakabihira sa praktika dahil sa mga katangian ng SHA-1. Ang paggamit ng iba't ibang namespace o mga string ng pangalan ay halos nag-aalis ng panganib ng collision.
Sapat ba ang seguridad ng SHA-1 para sa UUID v5?
Para sa mga layunin ng UUID, nananatiling angkop ang SHA-1 sa kabila ng mga kahinaan nito sa cryptographic. Ang UUID v5 ay hindi nilalayong gamitin para sa seguridad kundi para sa pagbuo ng mga consistent na identifier.
Maaari ba akong gumawa ng sarili kong namespace para sa UUID v5?
Oo. Habang tinutukoy ng RFC 4122 ang mga standard na namespace (DNS, URL, OID, X.500), maaari kang gumawa ng custom na mga namespace gamit ang anumang valid na UUID, karaniwang isang v4 random UUID.
Laging pareho ba ang UUID v5 na mabubuo para sa parehong pangalan?
Oo, ngunit sa loob lamang ng parehong namespace. Ang parehong pangalan sa iba't ibang namespace ay lilikha ng iba't ibang UUID, na isang mahalagang katangian para sa pag-organisa ng mga identifier.