UUID-generaattori

Lisää verkkosivustolle Metatieto

Muut työkalut

Luo UUID/GUID

Luo UUID/GUID

Universally Unique Identifier (UUID), joka tunnetaan myös nimellä Globally Unique Identifier (GUID), on käytetty laajalti tietokonejärjestelmissä.

Se on 128-bittinen koodi, jonka järjestelmä luo muuttujien ja vakioiden perusteella: nykyinen aika, MAC-osoite, SHA-1 hash, MD5-nimiavaruus. UUID:n luomisen lopputulos, joka näytetään 32-merkkisenä aakkosnumeerisena koodina, joka on erotettu yhdysviivalla, saattaa vaikuttaa mielivaltaiselta, mutta itse asiassa se on monimutkaisten laskelmien tulos. Tietokone ei siis "keksi" koodia, vaan muodostaa sen tietyllä hetkellä relevanteista teknisistä suureista.

Todennäköisyys, että sama UUID luodaan kahdella eri tietokoneella eri aikoina, on yleensä nolla, mikä mahdollistaa tuloksena olevien koodien käyttämisen pisteen/paikallisen datan tunnistamiseen ilman koordinointikeskusta. Nykyään UUID/GUID on läsnä kaikkialla sekä online- että offline-verkoissa, ja se toimii tehokkaasti paitsi maailmanlaajuisessa Internet-tilassa myös itsenäisissä tietokonejärjestelmissä.

UUID-historia

128-bittisiä UUID-koodeja käytti ensimmäisen kerran yhdysvaltalainen Apollo Computer 1980-luvulla. Ne perustuivat yksinkertaisempiin 64-bittisiin koodeihin, joita käytetään Domain/OS:ssä, ja niitä käytettiin laajasti Open Software Foundationin laskentaympäristössä.

Ensimmäisten Windows-alustojen myötä maailmanlaajuisesti ainutlaatuinen tunniste yleistettiin ja standardisoitiin. Microsoft otti käyttöön Apollo Computerin DCE-mallin ja rekisteröi URN-nimiavaruuden RFC 4122:een. Vuonna 2005 IETF ehdotti viimeksi mainittua uudeksi standardiksi, ja UUID standardoitiin ITU:ssa.

Aiemmin vuonna 2002 havaittiin järjestelmän suorituskykyongelmia käytettäessä UUID-tunnuksia ensisijaisina avaimina paikallisissa tietokantoissa. Nämä korjattiin versiossa 4 lisäämällä ei-satunnainen pääte, joka perustuu tietokoneen järjestelmäaikaan. Ns. COMB (Combined GUID Time Identifier) ​​-menetelmä lisäsi koodin päällekkäisyyden riskejä, mutta samalla paransi merkittävästi suorituskykyä työskennellessä Microsoft SQL Serverin kanssa.

IT-teknologioiden kehittymisen myötä universaali yksilöllinen tunniste on lakannut olemasta pitkälle erikoistunut tekninen työkalu, ja nykyään jokainen voi käyttää sitä. Luotujen koodien toistumisen todennäköisyys ei ole nolla, vaan siihen pyrkii, ja niiden avulla voidaan tunnistaa mikä tahansa digitaalinen tieto, jonka jälkeen ne voidaan yhdistää yhdeksi tietomatriisiksi minimaalisella toistoriskillä.

UUID-edut

Maailmanlaajuisten yksilöllisten koodien generaattorit eivät vaadi keskitettyä tietojen täsmäytystä/synkronointia, ja ne ovat kaikkien käyttäjien vapaasti saatavilla. UUID:n tärkeimpiä etuja ovat:

  • Minimaalinen koodien "törmäyksen" (toiston) riski. Huolimatta niiden massiivisesta käytöstä, toiston todennäköisyys on yleensä nolla.
  • Mahdollisuus yhdistää erilaisia ​​tietoryhmiä käyttämällä UUID:itä ensisijaisina (yksilöllisinä) avaimina.
  • Yksinkertaistettu tietojen jakelu useiden hajautettujen palvelimien kesken.
  • Mahdollisuus luoda koodeja offline-tilassa.

Ainutlaatuiset tunnistekoodit, jotka on kirjoitettu muodossa xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, mahdollistavat hajautettujen järjestelmien tunnistamisen ilman koordinointia yhdestä datakeskuksesta: lähes nollalla virheiden/toistojen todennäköisyydellä. Tämä ominaisuus sekä helppokäyttöisyys ja pienet tietokoneen suorituskykyvaatimukset tekevät UUID:stä kysytyn ja välttämättömän useilla IT-aloilla ja itsenäisillä laskentajärjestelmillä.

Yleisesti yksilöllinen tunniste

Yleisesti yksilöllinen tunniste

UUID voi luoda koodeja käyttämällä erilaisia ​​​​algoritmeja ja muuttujia/vakioarvoja.

Tunnisteessa on yhteensä 5 versiota, jotka käyttävät järjestelmän päivämäärää/aikaa ja MAC-osoitteita, DCE-suojausprotokollia, MD5-tiivistettä, SHA-1-tiivistettä ja nimiavaruutta luomisen yhteydessä.

Lopputulos näytetään kaikissa tapauksissa muodossa xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (heksadesimaalimuodossa oleva luku, joka koostuu latinalaisista pienistä kirjaimista ja numeroista ja jaettuna yhdysviivalla viiteen lohkoon: 8-4 -4-4- 12), M tarkoittaa versiota, N tarkoittaa UUID-varianttia.

Järjestelmä käyttää siis 36 merkkiä kerrallaan (26 kirjainta ja 10 numeroa), joten 32-numeroisten koodien toistumisen todennäköisyys on yleensä nolla, vaikka miljoonat käyttäjät ympäri maailmaa luovat niitä päivittäin.

UUID-versiot

Versio 1

Yksilöllisen tunnuksen ensimmäinen versio koodia luotaessa perustuu tietokoneen MAC-osoitteeseen ja sen järjestelmäaikaan, joka muuttaa numeerista arvoaan kerran sekunnissa. Luontiprosessi koostuu viidestä vaiheesta:

  • Alemmat 32 bittiä tietoa on otettu UTC-tunnisteesta. Ne muunnetaan 8 heksadesimaalimerkiksi ja vievät 4 tavua.
  • Keskimäärin 16 bittiä tietoa otetaan samasta UTC-tunnisteesta ja muunnetaan neljäksi heksadesimaalimerkiksi, jotka vievät 2 tavua.
  • UTC-tunnisteen 12 ylempää tietobittiä otetaan ja muunnetaan neljäksi heksadesimaalimerkiksi.
  • Toiset 1-3 bittiä putoavat kellosekvenssiin ja vähentävät törmäysriskiä lisäämällä tiettyä satunnaisuutta/epävarmuutta. Järjestelmäaikaa joko hidastetaan ehdollisesti tai lyhennetään – jotta kaksi tai useampi samassa tietokoneessa samanaikaisesti työskentelevä tunniste ei "risteä".
  • Loput 6 tavua ovat vakioarvoja, jotka luodaan laitteen MAC-osoitteen perusteella. Se koostuu 12 heksadesimaalimerkistä ja on kooltaan 48 bittiä.

Koska UUID:n ensimmäisen version algoritmi liittyy erottamattomasti järjestelmän aikaan, kellosekvenssin käyttö on pakollista. Muuten riskit samojen koodien generoimisesta moninkertaistuvat - sekunnissa, jolloin järjestelmän aika "jäätyy" yhteen tai toiseen arvoon.

Versio 2

Toinen versio eroaa vähän ensimmäisestä, ja sitä käytetään harvoin käytännössä. Kellosekvenssin sijaan se käyttää käyttäjätietoihin sidottua järjestelmätunnistetta tai muita ainutlaatuisia arvoja, jotka eivät toistu muissa tietokoneissa tai toistuvat hyvin harvoin. Satunnaisuuden vaikutus toisessa versiossa on minimoitu, ja sitä voidaan käyttää hajautetun laskentaympäristön turvallisuuden parantamiseen.

Versiot 3 ja 5

Niillä on paljon yhteistä: ne käyttävät yksilöllisiä nimiä ja nimiä (MD5-avaruudesta) luodakseen koodeja, eli ei-satunnaisia ​​arvoja. Vain versio 3 käyttää tavallista tiivistettä, kun taas versio 5 käyttää SHA-1-tiivistettä. Tällaiset tunnisteet ovat vähemmän riippuvaisia ​​satunnaismuuttujista.

Versio 4

Tämän UUID-version luominen on yli 90 % satunnaista. Siinä on 6 bittiä vakioarvoille ja 122 satunnaisille arvoille. Algoritmin toteutus on, että ensin generoidaan satunnaisesti 128 bittiä tietoa, joista 6 korvataan versio- ja varianttidatalla.

Neljännen version pseudosatunnaislukugeneraattorin rooli on suurin, ja jos sillä on liian yksinkertainen algoritmi, toistojen/törmäysten riskit kasvavat merkittävästi. Tästä huolimatta se on neljäs versio, joka on ylivoimaisesti yleisin ja usein käytetty käytännössä.

UUID-asetukset

Ainutlaatuista UUID-tunnusta on jalostettu useita kertoja tietokonetekniikan kehittyessä, ja nykyään siitä on useita versioita.

Vaihtoehto 0

Suunniteltu toimimaan vanhojen Apollo Network Computing System 1.5 1988 -muotoisten tietokantojen kanssa. Tämä vaihtoehto on taaksepäin yhteensopiva niiden kanssa eikä ole ristiriidassa NCS:n historiallisten UUID-tunnusten kanssa.

Vaihtoehdot 1 ja 2

Käytetään nykyaikaisten tietolohkojen ja taulukoiden tunnistamiseen, ja kanonisessa tekstimuodossa ne eivät eroa toisistaan, lukuun ottamatta varianttibittien kirjoitusjärjestystä. Joten vaihtoehto 1 käyttää big-endian-tavujärjestystä ja vaihtoehto 2 käyttää otsikko-endiania. Ensimmäinen on tärkein, ja toinen on varattu Microsoft Windowsin varhaisten GUID-tunnusten kanssa työskentelemiseen.

Vaihtoehto 3

Ei tällä hetkellä käytössä. Se on varattu versio tulevaa käyttöä varten - kun aikaisempien vaihtoehtojen mahdollisuudet ovat loppuneet.

Useimmat järjestelmät koodaavat tunnisteen big-endianilla, mutta poikkeuksiakin on. Esimerkiksi Microsoft COM/OLE -kirjastojen yhdistäminen käyttää mix-endiania, kun se luo koodia title-endian- ja big-endian-lohkoista. Ensimmäinen on UUID:n kolme ensimmäistä komponenttia, ja toinen on kaksi viimeistä.