UUID Version 5 Generator (SHA-1 Name-Based)

Lumikha ng consistent na UUID gamit ang namespace at pangalan gamit ang SHA-1 hashing

Mga Setting ng NamespaceSHA-1

Ang mga bersyon v3 at v5 ng UUID ay nangangailangan ng namespace at pangalan upang makagawa ng deterministic na mga UUID.

Dapat ito ay isang wastong UUID. Gamitin ang dropdown para pumili ng paunang natukoy na namespace.
Anumang string ng teksto na ihahash upang lumikha ng UUID.

Subukan ang mga halimbawang ito:

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

  1. Pumili ng namespace UUID (paunang-tukoy o custom)
  2. Pagsamahin ang namespace UUID at ang pangalan ng string
  3. Kalkulahin ang SHA-1 hash ng pinagsamang halaga
  4. Itakda ang version bits (0101) at variant bits (10)
  5. Buuin bilang 32 hex na digit na may hyphens: 8-4-4-4-12 na format

Mga Bentahe at Pagsasaalang-alang

AdvantagesConsiderations
  • Deterministikong (parehong input = parehong UUID)
  • Pangalanang organisasyon
  • Walang dependency sa network o oras
  • Walang alalahanin sa privacy (walang MAC address)
  • Hindi nakaayos ayon sa oras
  • Parehong input ay laging lumilikha ng parehong UUID
  • Ang pagpili ng namespace ay nakakaapekto sa pagiging natatangi
  • May kilalang kahinaan sa cryptographic ang SHA-1

Estruktura ng UUID v5

BitsContent
0-47Unang 48 bits ng SHA-1 hash
48-51Bersyon (0101 para sa v5)
52-63Susunod na 12 bits ng SHA-1 hash
64-65Variant (10 para sa RFC4122)
66-127Natitirang 62 bits ng SHA-1 hash

UUID v5 kumpara sa ibang mga bersyon

VersionBatay saGamitPrivacy
UUID v1Oras + MACMga ID na nakaayos ayon sa oras⚠️ Ipinapakita ang MAC
UUID v3Namespace + MD5Deterministikong mga ID✅ Pribado
UUID v4RandomSecure random na mga ID✅ Pribado
UUID v5Namespace + SHA-1Deterministikong mga ID✅ Pribado
UUID v6Oras (muling inayos)Mga ID na maaaring i-sort⚠️ Ipinapakita ang MAC
UUID v7Oras + randomMga ID na maaaring i-sort✅ Pribado

Mga Paunang-tukoy na Namespace

NamespaceUUIDPurpose
DNS6ba7b810-9dad-11d1-80b4-00c04fd430c8Para sa mga domain name
URL6ba7b811-9dad-11d1-80b4-00c04fd430c8Para sa mga URL
OID6ba7b812-9dad-11d1-80b4-00c04fd430c8Para sa ISO OID
X.500 DN6ba7b814-9dad-11d1-80b4-00c04fd430c8Para 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.

Resources