UUID ģenerators

Pievienot vietnei Metainformācija

Citi rīki

Ģenerēt UUID/GUID

Ģenerēt UUID/GUID

Universāli unikālais identifikators (UUID), kas pazīstams arī kā globāli unikālais identifikators (GUID), ir plaši izmantots datorsistēmās.

Tas ir 128 bitu kods, ko sistēma ģenerē, pamatojoties uz mainīgajiem lielumiem un konstantēm: pašreizējo laiku, MAC adresi, SHA-1 hash, MD5 nosaukumvietu. UUID ģenerēšanas gala rezultāts, kas tiek parādīts kā 32 rakstzīmju burtciparu kods, kas atdalīts ar defisēm, var šķist patvaļīgs, taču patiesībā tas ir sarežģītu aprēķinu rezultāts. Tādējādi dators nevis “izgudro” kodu, bet veido to no konkrētiem tehniskiem lielumiem, kas ir aktuāli konkrētajā brīdī.

Varbūtība, ka viens un tas pats UUID tiks ģenerēts divos dažādos datoros dažādos laikos, mēdz būt līdz nullei, kas ļauj izmantot iegūtos kodus punktu/lokālo datu identificēšanai, neatsaucoties uz koordinācijas centru. Mūsdienās UUID/GUID ir visuresošs gan tiešsaistes, gan bezsaistes tīklos, un tas efektīvi darbojas ne tikai globālajā interneta telpā, bet arī atsevišķās datorsistēmās.

UUID vēsture

128 bitu UUID kodus 1980. gados pirmo reizi izmantoja amerikāņu uzņēmums Apollo Computer. Tie tika balstīti uz vienkāršākiem 64 bitu kodiem, ko izmantoja domēnā/OS, un tika plaši izmantoti Open Software Foundation skaitļošanas vidē.

Līdz ar pirmo Windows platformu parādīšanos globāli unikālais identifikators tika vispārināts un standartizēts. Microsoft pārņēma DCE dizainu no Apollo Computer un reģistrēja URN nosaukumvietu RFC 4122. IETF 2005. gadā šo kā jaunu standartu ierosināja, un UUID tika standartizēts ITU.

2002. gadā, izmantojot UUID kā primārās atslēgas vietējās datubāzēs, tika konstatētas sistēmas veiktspējas problēmas. Tie tika laboti 4. versijā, pievienojot negadījuma sufiksu, pamatojoties uz datora sistēmas laiku. Tā sauktā COMB (Combined GUID Time Identifier) pieeja palielināja koda dublēšanās riskus, bet tajā pašā laikā ievērojami uzlaboja veiktspēju, strādājot ar Microsoft SQL Server.

Attīstoties IT tehnoloģijām, universālais unikālais identifikators vairs nav ļoti specializēts tehniskais rīks, un mūsdienās to var izmantot ikviens. Ģenerēto kodu atkārtošanās varbūtība nav vienāda ar nulli, bet tiecas uz to, un ar tiem var identificēt jebkuru digitālo informāciju, pēc kuras tos var apvienot atsevišķos datu masīvos ar minimālu atkārtošanās risku.

UUID priekšrocības

Globālo unikālo kodu ģeneratoriem nav nepieciešama centralizēta datu saskaņošana/sinhronizācija, un tie ir brīvi pieejami visiem lietotājiem. Galvenās UUID priekšrocības ir šādas:

  • Minimāls kodu "sadursmes" (atkārtošanās) risks. Neskatoties uz to masveida izmantošanu, atkārtošanās iespējamība ir nulle.
  • Iespēja savienot dažādus datu masīvus, izmantojot UUID kā primārās (unikālās) atslēgas.
  • Vienkāršota datu izplatīšana vairākos izkliedētos serveros.
  • Iespēja ģenerēt kodus bezsaistē.

Unikālie identifikācijas kodi, kas rakstīti formātā xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, ļauj izkliedētām sistēmām atpazīt informāciju bez koordinācijas no viena datu centra: ar gandrīz nulles kļūdu/atkārtojumu iespējamību. Šī funkcija, kā arī lietošanas vienkāršība un nelielas prasības datora veiktspējai, padara UUID par pieprasītu un neaizstājamu daudzās IT nozarēs un autonomās skaitļošanas sistēmās.

Universāli unikāls identifikators

Universāli unikāls identifikators

UUID var ģenerēt kodus, izmantojot dažādus algoritmus un mainīgos/konstantās vērtības.

Pavisam ir 5 identifikatora versijas, kurās tiek izmantots sistēmas datums/laiks un MAC adreses, DCE drošības protokoli, MD5 jaucējkods, SHA-1 jaucējvieta un nosaukumvieta, kad tas tiek ģenerēts.

Visos gadījumos gala rezultāts tiek parādīts formātā xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (skaitlis heksadecimālā apzīmējumā, kas sastāv no mazajiem latīņu burtiem un cipariem un sadalīts ar defisēm piecos blokos: 8-4 -4-4- 12), M apzīmē versiju, N apzīmē UUID variantu.

Tādējādi sistēma vienlaikus izmanto 36 rakstzīmes (26 burtus un 10 ciparus), tāpēc 32 ciparu kodu atkārtošanās iespējamība ir nulle, neskatoties uz to, ka tos katru dienu ģenerē miljoniem lietotāju visā pasaulē.

UUID versijas

1. versija

Unikālā identifikatora pirmā versija, ģenerējot kodu, ir balstīta uz datora MAC adresi un tā sistēmas laiku, kas maina savu skaitlisko vērtību 1 reizi sekundē. Ģenerēšanas process sastāv no pieciem posmiem:

  • Apakšējie 32 informācijas biti tiek ņemti no UTC taga. Tie tiek pārveidoti par 8 heksadecimālajām rakstzīmēm un aizņem 4 baitus.
  • No vienas UTC etiķetes tiek ņemti vidēji 16 biti informācijas un pārvērsti 4 heksadecimālajās rakstzīmēs, kas aizņem 2 baitus.
  • UTC taga augšējie 12 biti tiek ņemti un pārveidoti par vēl 4 heksadecimālajām rakstzīmēm.
  • Vēl 1–3 biti iekrīt pulksteņa secībā un samazina sadursmju risku, ieviešot nejaušības/nenoteiktības pakāpi. Sistēmas laiks tiek vai nu nosacīti palēnināts, vai atpalikts, lai divi vai vairāki identifikatori, kas vienlaikus strādā vienā datorā, "nešķērsotos".
  • Pārējie 6 baiti ir nemainīga vērtība, kas ģenerēta, pamatojoties uz ierīces MAC adresi. Tas sastāv no 12 heksadecimālajām rakstzīmēm un ir 48 biti liels.

Tā kā UUID pirmās versijas algoritms ir nesaraujami saistīts ar sistēmas laiku, pulksteņa secības izmantošana ir obligāta. Pretējā gadījumā riski ģenerēt vienus un tos pašus kodus daudzkārt palielinās – otrajā laikā, kad sistēmas laiks “iesalst” vienā vai citā vērtībā.

2. versija

Otrā versija minimāli atšķiras no pirmās, un praksē to izmanto reti. Pulksteņa secības vietā tiek izmantots sistēmas identifikators, kas saistīts ar lietotāja datiem vai citām unikālām vērtībām, kuras netiek atkārtotas citos datoros vai tiek atkārtotas ļoti reti. Otrajā versijā nejaušības efekts ir samazināts līdz minimumam, un to var izmantot, lai uzlabotu sadalītās skaitļošanas vides drošību.

3. un 5. versija

Tiem ir daudz kopīga: tie izmanto unikālus nosaukumus un nosaukumus (no MD5 vietas), lai izveidotu kodus, tas ir, vērtības, kas nav nejaušas. Tikai 3. versija izmanto standarta jaucējkodu, savukārt 5. versija izmanto SHA-1 jaucēju. Šādi identifikatori ir mazāk atkarīgi no nejaušiem mainīgajiem.

4. versija

Šīs UUID versijas ģenerēšana ir vairāk nekā 90% nejauša. Tam ir 6 biti nemainīgām vērtībām un 122 biti patvaļīgām vērtībām. Algoritma ieviešana ir tāda, ka vispirms nejauši tiek ģenerēti 128 informācijas biti, un 6 no tiem tiek aizstāti ar versiju un variantu datiem.

Pseidogadījuma skaitļu ģeneratora loma ceturtajā versijā ir maksimāla, un, ja tam ir pārāk vienkāršs algoritms, atkārtojumu/sadursmju risks ievērojami palielinās. Neskatoties uz to, tā ir ceturtā versija, kas ir visizplatītākā un bieži izmantota praksē.

UUID opcijas

Unikālais UUID ir vairākkārt pilnveidots, attīstoties datortehnoloģijām, un šodien tas tiek piedāvāts vairākās versijās.

0. iespēja

Izstrādāts darbam ar mantotajām Apollo Network Computing System 1.5 1988 formāta datu bāzēm. Šī opcija ir ar tiem saderīga un nav pretrunā ar NCS vēsturiskajiem UUID.

1. un 2. iespēja

Izmanto mūsdienu datu bloku un masīvu identificēšanai, un kanoniskā teksta formā tie neatšķiras viens no otra, izņemot variantu bitu rakstīšanas secību. Tātad 1. iespēja izmanto lielo baitu secību, bet 2. iespēja izmanto virsraksta baitu secību. Pirmais ir galvenais, bet otrais ir paredzēts darbam ar agrīnajiem GUID no Microsoft Windows.

3. iespēja

Šobrīd netiek lietots. Tā ir rezervēta versija izmantošanai nākotnē – kad ir izsmeltas iepriekšējo iespēju iespējas.

Lielākā daļa sistēmu identifikatoru kodē big-endian, taču ir arī izņēmumi. Piemēram, sadalot Microsoft COM/OLE bibliotēkās, tiek izmantots jauktais endians, vienlaikus ģenerējot kodu no title-endian un big-endian blokiem. Pirmā ir pirmie trīs UUID komponenti, bet otrā ir pēdējie divi.