UUID generaator

Lisa veebisaidile Metaandmed

Teised tööriistad

Loo UUID/GUID

Loo UUID/GUID

Universaalselt unikaalset identifikaatorit (UUID), tuntud ka kui globaalselt unikaalset identifikaatorit (GUID), on arvutisüsteemides laialdaselt kasutatud.

See on 128-bitine kood, mille süsteem genereerib muutujate ja konstantide põhjal: praegune aeg, MAC-aadress, SHA-1 räsi, MD5 nimeruum. UUID genereerimise lõpptulemus, mis kuvatakse sidekriipsudega eraldatud 32-kohalise tähtnumbrilise koodina, võib tunduda meelevaldne, kuid tegelikult on see keerukate arvutuste tulemus. Seega ei “leiutab” arvuti koodi, vaid moodustab selle konkreetsetest tehnilistest suurustest, mis on antud ajahetkel olulised.

Tõenäosus, et sama UUID genereeritakse kahes erinevas arvutis erinevatel aegadel, kipub olema null, mis võimaldab saadud koode kasutada punktide/kohalike andmete tuvastamiseks ilma koordineerimiskeskusele viitamata. Tänapäeval on UUID/GUID üldlevinud nii võrgu- kui ka võrguühenduseta võrkudes ning see töötab tõhusalt mitte ainult ülemaailmses Interneti-ruumis, vaid ka eraldiseisvates arvutisüsteemides.

UUID ajalugu

128-bitiseid UUID-koode kasutas esmakordselt Ameerika ettevõte Apollo Computer 1980. aastatel. Need põhinesid domeenis/OS-is kasutatavatel lihtsamatel 64-bitistel koodidel ja leidsid laialdast kasutust Open Software Foundationi arvutuskeskkonnas.

Esimeste Windowsi platvormide tulekuga globaalselt unikaalne identifikaator üldistati ja standarditi. Microsoft võttis kasutusele Apollo Computeri DCE disaini ja registreeris URN-nimeruumi RFC 4122-s. 2005. aastal pakkus IETF viimase välja uue standardina ja UUID standardiseeriti ITU-s.

2002. aasta alguses tuvastati UUID-de kasutamisel kohalikes andmebaasides primaarvõtmetena süsteemi jõudlusprobleeme. Need parandati versioonis 4, lisades arvuti süsteemiajal põhineva mittejuhusliku järelliide. Nn COMB (Combined GUID Time Identifier) ​​lähenemine suurendas koodi dubleerimise riske, kuid samal ajal parandas oluliselt jõudlust Microsoft SQL Serveriga töötamisel.

IT-tehnoloogiate arenguga on universaalne unikaalne identifikaator lakanud olemast kõrgelt spetsialiseerunud tehniline tööriist ja tänapäeval saavad seda kõik kasutada. Loodud koodide kordumise tõenäosus ei ole võrdne nulliga, vaid kaldub sellele ning nende abil on võimalik tuvastada igasugune digitaalne teave, misjärel saab need minimaalse kordusriskiga kombineerida üksikuteks andmemassiivideks.

UUID eelised

Ülemaailmsete unikaalsete koodide generaatorid ei vaja tsentraliseeritud andmete kooskõlastamist/sünkroonimist ja on kõigile kasutajatele vabalt kättesaadavad. UUID peamised eelised on järgmised:

  • Minimaalne koodide kokkupõrke (kordumise) oht. Vaatamata massilisele kasutamisele kipub kordumise tõenäosus olema null.
  • Võimalus ühendada erinevaid andmemassiive, kasutades primaarsete (ainulaadsete) võtmetena UUID-sid.
  • Lihtsustatud andmete jaotamine mitme hajutatud serveri vahel.
  • Võimalus luua koode võrguühenduseta.

Ainulaadsed identifitseerimiskoodid, mis on kirjutatud vormingus xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, võimaldavad hajutatud süsteemidel tuvastada teavet ilma koordineerimiseta ühest andmekeskusest: peaaegu nulli vigade/korduste tõenäosusega. See funktsioon koos kasutuslihtsuse ja väikeste nõuetega arvuti jõudlusele muudab UUID nõudlikuks ja asendamatuks paljudes IT-tööstuses ja autonoomsetes andmetöötlussüsteemides.

Universaalne unikaalne identifikaator

Universaalne unikaalne identifikaator

UUID võib genereerida koode, kasutades erinevaid algoritme ja muutujaid/konstante väärtusi.

Identifitseerijal on kokku 5 versiooni, mis kasutavad loomisel süsteemi kuupäeva/kellaaega ja MAC-aadresse, DCE turvaprotokolle, MD5 räsi, SHA-1 räsi ja nimeruumi.

Igal juhul kuvatakse lõpptulemus formaadis xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxx (kuueteistkümnendsüsteemis olev arv, mis koosneb ladina väiketähtedest ja numbritest ning jagatakse sidekriipsudega viieks plokiks: 8-4 -4-4- 12), M tähistab versiooni, N tähistab UUID varianti.

Seega kasutab süsteem korraga 36 tähemärki (26 tähte ja 10 numbrit), seega kipub 32-kohaliste koodide kordumise tõenäosus nullini, hoolimata asjaolust, et neid genereerivad iga päev miljonid kasutajad üle maailma.

UUID versioonid

Versioon 1

Koodi genereerimisel põhineb kordumatu identifikaatori esimene versioon arvuti MAC-aadressil ja selle süsteemiajal, mis muudab oma arvväärtust 1 kord sekundis. Genereerimisprotsess koosneb viiest etapist:

  • Alumised 32 bitti teavet võetakse UTC-sildilt. Need teisendatakse 8 kuueteistkümnendmärgiks ja võtavad enda alla 4 baiti.
  • Samast UTC-sildist võetakse keskmiselt 16 bitti teavet ja teisendatakse 4 kuueteistkümnendsüsteemi märgiks, mis võtavad enda alla 2 baiti.
  • UTC-märgendi teabe ülemised 12 bitti võetakse ja teisendatakse veel neljaks kuueteistkümnendmärgiks.
  • Veel 1–3 bitti langevad kella jadale ja vähendavad kokkupõrgete ohtu, lisades juhuslikkuse/ebakindluse. Süsteemi aeg on kas tinglikult aeglustunud või tagasi lükatud – et kaks või enam samas arvutis korraga töötavat identifikaatorit ei "ristaks".
  • Ülejäänud 6 baiti on konstantne väärtus, mis genereeritakse seadme MAC-aadressi põhjal. See koosneb 12 kuueteistkümnendmärgist ja on 48 bitti suur.

Kuna UUID esimese versiooni algoritm on lahutamatult seotud süsteemi ajaga, on kella jada kasutamine kohustuslik. Vastasel juhul suurenevad samade koodide genereerimise riskid kordades – sekundi jooksul, kui süsteemiaeg ühel või teisel väärtusel "külmub".

Versioon 2

Teine versioon erineb esimesest minimaalselt ja seda kasutatakse praktikas harva. Kellajärjestuse asemel kasutab see kasutajaandmetega seotud süsteemiidentifikaatorit või muid kordumatuid väärtusi, mida teistes arvutites ei korrata või korratakse väga harva. Juhuslikkuse mõju teises versioonis on minimeeritud ja seda saab kasutada hajutatud arvutuskeskkonna turvalisuse parandamiseks.

Versioonid 3 ja 5

Neil on palju ühist: nad kasutavad unikaalseid nimesid ja nimesid (MD5 ruumist) koodide, st mittejuhuslike väärtuste loomiseks. Ainult versioon 3 kasutab tavalist räsi, versioon 5 aga SHA-1 räsi. Sellised identifikaatorid sõltuvad vähem juhuslikest muutujatest.

Versioon 4

Selle UUID-versiooni genereerimine on enam kui 90% juhuslik. Sellel on konstantsete väärtuste jaoks 6 bitti ja suvaliste väärtuste jaoks 122. Algoritmi teostus seisneb selles, et kõigepealt genereeritakse juhuslikult 128 bitti teavet ja 6 neist asendatakse versiooni- ja variandiandmetega.

Neljanda versiooni pseudojuhuslike arvude generaatori roll on maksimaalne ja kui sellel on liiga lihtne algoritm, siis korduste/kokkupõrgete riskid suurenevad oluliselt. Sellest hoolimata on see neljas versioon, mis on ülekaalukalt kõige levinum ja praktikas sageli kasutatav.

UUID-valikud

Ainulaadset UUID-d on arvutitehnoloogia arenedes mitu korda täiustatud ja täna on seda saadaval mitmes versioonis.

Valik 0

Mõeldud töötama Apollo Network Computing System 1.5 1988 formaadis pärandandmebaasidega. See valik on nendega tagasiühilduv ega ole vastuolus NCS-i ajalooliste UUID-dega.

Valikud 1 ja 2

Kasutatakse tänapäevaste andmeplokkide ja massiivide tuvastamiseks ning kanoonilises tekstivormis ei erine need üksteisest, välja arvatud variantide bittide kirjutamise järjekord. Nii et 1. valik kasutab big-endiani baitide järjestust ja 2. valik pealkirja lõppu. Esimene neist on peamine ja teine ​​on reserveeritud Microsoft Windowsi varajaste GUID-idega töötamiseks.

3. valik

Praegu ei kasutata. See on reserveeritud versioon edaspidiseks kasutamiseks – kui eelmiste valikute võimalused on ammendatud.

Enamik süsteeme kodeerib identifikaatori big-endianis, kuid on ka erandeid. Näiteks kasutab Microsofti COM/OLE teekide järjestamine segatüüpi, genereerides samal ajal koodi pealkirja ja big-endiani plokkidest. Esimene on UUID-i kolm esimest komponenti ja teine ​​​​kaks viimast.