Ano ang UUID v1?
UUID bersyon 1 ay isang time-based 128-bit identifier (36-char string) mula sa RFC 4122. Pinagsasama nito:
- Timestamp: 60-bit na halaga (100-nanosecond na precision mula 1582-10-15)
- Pagkakasunud-sunod ng Orasan: 14-bit na counter para sa mga pagsasaayos ng orasan
- Node ID: 48-bit na halaga (karaniwang MAC address)
Halimbawa ng format: 2ed6657d-e927-11eb-9a03-0242ac130003
Paano gumagana ang UUID v1
- Kalkulahin ang kasalukuyang timestamp (100ns na pagitan mula 1582-10-15)
- Kunin/tagdagan ang 14-bit na clock sequence (para sa pagiging natatangi kung ang orasan ay bumalik)
- Kunin ang 48-bit na node ID (karaniwang mula sa MAC address)
- Itakda ang version bits (0001) at variant bits (10)
- I-assemble bilang 32 hex digit na may hyphens: 8-4-4-4-12 na format
Mga Bentahe at Pagsasaalang-alang
Advantages | Considerations |
---|---|
|
|
Estruktura ng UUID v1
Bits | Content |
---|---|
0-31 | Mababang 32 bit ng timestamp |
32-47 | Gitnang 16 bit ng timestamp |
48-59 | Mataas na 12 bit ng timestamp |
60-63 | Bersyon (0001 para sa v1) |
64-65 | Variant (10 para sa RFC4122) |
66-79 | Clock sequence (14 bits) |
80-127 | Node ID (48 bits) |
UUID v1 kumpara sa ibang mga bersyon
Version | Batay sa | Gamit na kaso | 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 (na inayos muli) | Mga ID na maaaring i-sort | ⚠️ Ipinapakita ang MAC |
UUID v7 | Oras + random | Mga ID na maaaring i-sort | ✅ Pribado |
Karaniwang Mga Gamit na Kaso
- Mga susi ng database: Distributed na mga database
- Audit logs: Pagsubaybay na nakaayos ayon sa oras
- Mga ID ng Transaksyon: Mga proseso ng negosyo
- Pagsubaybay ng session: Mga web application
- Pag-address ng nilalaman: Mga CMS system
- Mga mensahe ng IoT: Komunikasyon ng device
Mga Madalas Itanong
Ang UUID v1 ba ay cryptographically secure?
Hindi. Ang UUID v1 ay predictable kung alam ang timestamp at MAC address. Para sa seguridad, gamitin ang random UUID v4.
Maaaring mag-collide ang mga halaga ng UUID v1?
Napakabihirang mangyari ang mga collision dahil sa precision ng timestamp, mga counter ng clock sequence, at mga identifier ng node.
Maaari ko bang kunin ang oras ng paglikha mula sa UUID v1?
Oo. Ang bahagi ng timestamp ay maaaring kunin gamit ang angkop na mga algorithm na available sa karamihan ng mga UUID library.
Ang mga UUID v1 ba ay maaaring i-sort ayon sa oras ng paglikha?
Oo, ngunit kailangan ng espesyal na mga function sa pag-sort. Hindi gagana ang direktang paghahambing ng string dahil ang mga bit ng oras ay hindi sunud-sunod.
Ipinapakita ba ng UUID v1 ang aking MAC address?
Sa default, oo. Karamihan sa mga implementasyon ay gumagamit ng MAC address para sa node ID. Ang mga implementasyong nakatuon sa privacy ay maaaring gumamit ng random na node ID bilang kapalit.