Tagabuo ng UUID

Idagdag sa website Metaimpormasyon

Iba pang mga tool

Bumuo ng UUID/GUID

Bumuo ng UUID/GUID

Ang Universally Unique Identifier (UUID), na kilala rin bilang Globally Unique Identifier (GUID), ay malawakang ginagamit sa mga computer system.

Ito ay isang 128-bit na code na nabuo ng system batay sa mga variable at constant: kasalukuyang oras, MAC address, SHA-1 hash, MD5 namespace. Ang huling resulta ng pagbuo ng isang UUID, na ipinapakita bilang isang 32-character na alphanumeric code na pinaghihiwalay ng mga gitling, ay maaaring mukhang arbitrary, ngunit sa katunayan ito ay resulta ng mga kumplikadong kalkulasyon. Kaya, ang isang computer ay hindi "nag-imbento" ng isang code, ngunit binubuo ito mula sa mga partikular na teknikal na dami na may kaugnayan sa isang partikular na oras.

Ang posibilidad na mabuo ang parehong UUID sa dalawang magkaibang computer sa magkaibang oras ay nagiging zero, na ginagawang posible na gamitin ang mga resultang code para sa point/local data identification nang walang reference sa coordination center. Ngayon, ang UUID/GUID ay nasa lahat ng dako sa online at offline na mga network, at epektibong gumagana hindi lamang sa pandaigdigang espasyo sa Internet, kundi pati na rin sa mga standalone na computer system.

Kasaysayan ng UUID

Ang mga 128-bit na UUID code ay unang ginamit ng American company na Apollo Computer noong 1980s. Ang mga ito ay batay sa mas simpleng 64-bit na mga code na ginamit sa Domain/OS at natagpuan ang malawakang paggamit sa kapaligiran ng computing ng Open Software Foundation.

Sa pagdating ng mga unang platform ng Windows, ang natatanging identifier sa buong mundo ay ginawang pangkalahatan at na-standardize. Pinagtibay ng Microsoft ang disenyo ng DCE mula sa Apollo Computer at inirehistro ang URN namespace sa RFC 4122. Noong 2005, ang huli ay iminungkahi bilang bagong pamantayan ng IETF, at ang UUID ay na-standardize sa loob ng ITU.

Noong unang bahagi ng 2002, natukoy ang mga isyu sa pagganap ng system kapag gumagamit ng mga UUID bilang mga pangunahing key sa mga lokal na database. Naayos ang mga ito sa bersyon 4 sa pamamagitan ng pagdaragdag ng hindi random na suffix batay sa oras ng system ng computer. Ang tinatawag na COMB (Combined GUID Time Identifier) ​​​​approach ay nagpataas ng mga panganib ng pagdoble ng code, ngunit sa parehong oras ay makabuluhang pinabuting pagganap kapag nagtatrabaho sa Microsoft SQL Server.

Sa pag-unlad ng mga teknolohiyang IT, ang unibersal na natatanging identifier ay hindi na naging isang napaka-espesyal na teknikal na tool, at ngayon ay magagamit na ito ng lahat. Ang posibilidad ng pag-uulit ng mga nabuong code ay hindi katumbas ng zero, ngunit may posibilidad na ito, at anumang digital na impormasyon ay maaaring matukoy ng mga ito, pagkatapos nito ay maaaring pagsamahin ang mga ito sa mga solong data array na may kaunting mga panganib ng pag-uulit.

Mga Benepisyo ng UUID

Ang mga generator ng pandaigdigang natatanging code ay hindi nangangailangan ng sentralisadong data reconciliation/synchronization at malayang magagamit sa lahat ng user. Kabilang sa mga pangunahing bentahe ng UUID ang:

  • Minimal na panganib ng "pagbangga" (pag-uulit) ng mga code. Sa kabila ng kanilang malawakang paggamit, ang posibilidad ng pag-uulit ay may posibilidad na maging zero.
  • Kakayahang sumali sa iba't ibang array ng data gamit ang mga UUID bilang pangunahing (natatanging) key.
  • Pinasimpleng pamamahagi ng data sa maraming dispersed server.
  • Kakayahang bumuo ng mga code offline.

Ang mga natatanging identification code, na nakasulat sa format na xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, ay nagbibigay-daan sa mga dispersed system na makilala ang impormasyon nang walang koordinasyon mula sa isang data center: na may halos zero na posibilidad ng mga error / pag-uulit. Ang tampok na ito, kasama ng kadalian ng paggamit at maliliit na kinakailangan para sa pagganap ng computer, ay ginagawang hinihiling ang UUID at kailangang-kailangan sa iba't ibang uri ng mga industriya ng IT at mga autonomous na computing system.

Universally unique identifier

Universally unique identifier

Ang UUID ay maaaring bumuo ng mga code gamit ang iba't ibang algorithm at variable/constant value.

May kabuuang 5 bersyon ng identifier, gamit ang petsa/oras ng system at mga MAC address, mga protocol ng seguridad ng DCE, MD5 hash, SHA-1 hash at namespace kapag nabuo.

Sa lahat ng kaso, ang huling resulta ay ipinapakita sa format na xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (isang numero sa hexadecimal notation, na binubuo ng maliliit na Latin na titik at numero, at hinati ng mga gitling sa limang bloke: 8-4 -4-4- 12), M ay nangangahulugang bersyon, N ay nangangahulugang UUID na variant.

Kaya, ang system ay gumagamit ng 36 na character sa isang pagkakataon (26 na letra at 10 numero), kaya ang posibilidad ng pag-ulit ng 32-digit na code ay nagiging zero, sa kabila ng katotohanan na ang mga ito ay nabuo araw-araw ng milyun-milyong user sa buong mundo.

Mga bersyon ng UUID

Bersyon 1

Ang unang bersyon ng natatanging identifier, kapag bumubuo ng code, ay batay sa MAC address ng computer at sa oras ng system nito, na nagbabago sa numerical value nito nang 1 beses bawat segundo. Ang proseso ng pagbuo ay binubuo ng limang yugto:

  • Ang mas mababang 32 bits ng impormasyon ay kinuha mula sa UTC tag. Nako-convert ang mga ito sa 8 hexadecimal na character at tumatagal ng hanggang 4 na byte.
  • Ang average na 16 na piraso ng impormasyon ay kinukuha mula sa parehong label ng UTC at na-convert sa 4 na hexadecimal na character na sumasakop sa 2 byte.
  • Ang itaas na 12 bits ng impormasyon mula sa UTC tag ay kinuha at na-convert sa 4 pang hexadecimal na character.
  • Ang isa pang 1-3 bit ay nahuhulog sa sequence ng orasan at binabawasan ang mga panganib ng banggaan sa pamamagitan ng pagpapakilala ng antas ng randomness / kawalan ng katiyakan. Ang oras ng system ay maaaring may kundisyon na pinabagal o ibinalik - upang ang dalawa o higit pang mga identifier na gumagana sa parehong computer ay hindi "magkrus".
  • Ang natitirang 6 na byte ay isang pare-parehong halaga na nabuo batay sa MAC address ng device. Binubuo ito ng 12 hexadecimal character at 48 bits ang laki.

Dahil ang algorithm ng unang bersyon ng UUID ay hindi mapaghihiwalay na naka-link sa oras ng system, ang paggamit ng sequence ng orasan ay sapilitan. Kung hindi, ang mga panganib ng pagbuo ng parehong mga code ay tumataas nang maraming beses - sa pangalawa kapag ang oras ng system ay "nag-freeze" sa isa o ibang halaga.

Bersyon 2

Ang pangalawang bersyon ay kaunting naiiba mula sa una, at bihirang ginagamit sa pagsasanay. Sa halip na pagkakasunud-sunod ng orasan, gumagamit ito ng system identifier na nakatali sa data ng user o iba pang natatanging halaga na hindi nauulit sa ibang mga computer o napakabihirang umuulit. Ang epekto ng randomness sa pangalawang bersyon ay pinaliit, at maaari itong magamit upang mapabuti ang seguridad ng isang distributed computing environment.

Bersyon 3 at 5

Marami silang pagkakatulad: gumagamit sila ng mga natatanging pangalan at pangalan (mula sa espasyo ng MD5) upang lumikha ng mga code, iyon ay, mga hindi random na halaga. Ang bersyon 3 lang ang gumagamit ng karaniwang hash, habang ang bersyon 5 ay gumagamit ng SHA-1 na hash. Ang mga naturang identifier ay hindi gaanong nakadepende sa mga random na variable.

Bersyon 4

Ang henerasyon ng bersyon ng UUID na ito ay higit sa 90% random. Mayroon itong 6 bits para sa mga pare-parehong value, at 122 para sa arbitraryong mga value. Ang pagpapatupad ng algorithm ay ang 128 bits ng impormasyon ay unang random na nabuo, at 6 sa mga ito ay pinapalitan ng bersyon at variant na data.

Ang papel ng pseudo-random na generator ng numero sa ikaapat na bersyon ay ang maximum, at kung mayroon itong masyadong simpleng algorithm, ang mga panganib ng mga pag-uulit/pagbangga ay tumataas nang malaki. Sa kabila nito, ito ang pang-apat na bersyon na sa ngayon ang pinakakaraniwan at kadalasang ginagamit sa pagsasanay.

Mga pagpipilian sa UUID

Ang natatanging UUID ay ilang beses na pino habang ang teknolohiya ng computer ay nabuo, at ngayon ito ay ipinakita sa ilang mga bersyon.

Pagpipilian 0

Idinisenyo upang gumana sa mga legacy na Apollo Network Computing System 1.5 1988 na mga database ng format. Ang opsyong ito ay pabalik na tugma sa kanila at hindi sumasalungat sa mga makasaysayang UUID ng NCS.

Mga Opsyon 1 at 2

Ginagamit ang mga ito upang tukuyin ang mga modernong bloke at array ng data, at sa anyo ng canonical na text ay hindi sila naiiba sa isa't isa, maliban sa pagkakasunud-sunod kung saan isinulat ang mga variant bit. Kaya ang opsyon 1 ay gumagamit ng big-endian byte order, at ang opsyon 2 ay gumagamit ng title-endian. Ang una ay ang pangunahing isa, at ang pangalawa ay nakalaan para sa pagtatrabaho sa mga maagang GUID mula sa Microsoft Windows.

Pagpipilian 3

Kasalukuyang hindi ginagamit. Ito ay isang nakalaan na bersyon para magamit sa hinaharap - kapag ang mga posibilidad ng mga nakaraang opsyon ay naubos na.

Karamihan sa mga system ay nag-encode ng identifier sa big-endian, ngunit may mga pagbubukod. Halimbawa, ang marshaling sa mga library ng Microsoft COM/OLE ay gumagamit ng mixed-endian habang bumubuo ng code mula sa title-endian at big-endian blocks. Ang una ay ang unang tatlong bahagi ng UUID, at ang pangalawa ay ang huling dalawa.