GUID

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

GUID (G lobally U nique Id entifier, global unique identifier) este un număr pseudo-aleatoriu utilizat în software-ul de programare, pentru a distinge diferite obiecte. Cel mai cunoscut tip de GUID este utilizarea de către Microsoft a UUID, concepută de Open Software Foundation , dar există și alte utilizări, precum cea din XML .

GUID-urile sunt utilizate în cea mai mare parte în Component Object Model (COM), dar sunt populare și în alte sisteme software, cum ar fi Oracle și Novell .

GUID-ul Microsoft

GUID este utilizat pentru a identifica în mod unic o anumită componentă software COM; în acest fel, două versiuni (potențial incompatibile) ale aceleiași componente, chiar cu același nume, se pot distinge prin codurile lor GUID. Deși GUID nu garantează unicitatea efectivă, numărul posibil de combinații (2 128 ) este atât de mare încât să evite o coincidență între două coduri. Pentru a da o idee, având în vedere că în întregul univers observabil există 5 × 10 22 stele, fiecărei stele i s-ar putea atribui 6,8 × 10 15 GUID-uri diferite.

În plus față de componente, documentele și fișierele Office în Advanced Streaming Format sunt, de asemenea, marcate prin GUID. Cele mai multe GUID - urile utilizate de diferite aplicații sunt conținute în Windows Registry .

Structura

În practică, un GUID este un număr de 128 biți (16 octeți ) în format hexazecimal care poate fi:

 3F 25 04 E0 4F 89 11 D3 9A 0C 03 05 E8 2C 33 01

GUID-urile sunt scrise între paranteze și împărțite în cinci blocuri, unul de 4 octeți, trei de 2 octeți și unul de 6 octeți. În exemplul anterior am avea:

 {3F2504E0-4F89-11D3-9A0C-0305E82C3301}

Notarea este deci o secvență formată din următoarele grupuri de caractere, împărțite printr-o cratimă (-).

  1. Grupa 1 ( 8 caractere )
  2. Grupul 2 ( 4 caractere )
  3. Grupul 3 ( 4 caractere )
  4. Două elemente inițiale ale grupului 4 ( 4 caractere )
  5. Două elemente rămase din grupul 4 ( 4 caractere ) urmate de grupul 5 ( 8 caractere , pentru un total de 12 caractere )

În definiția unei structuri adecvate pentru a conține un GUID, în orice limbaj de programare , cea mai utilizată structură este următoarea.

 STRUCTURA GHID
Data1 dd
Date2 dw
Date3 dw
Date4 db 8
GHIDUL SE ÎNCHEIE

În C , definiția conținută în biblioteca guiddef.h este următoarea:

 typedef struct _GUID {
    Data1 nesemnată lungă;
    Date2 scurte nesemnate;
    Date nesemnate scurte3;
    caractere nesemnate Data4 [8];
} GUID;

În cadrul .NET , există o clasă specială pentru crearea GUID-urilor, System.Guid

Algoritm

Algoritmul specificat de OSF și utilizat de Microsoft pentru generarea GUID-urilor a fost criticat. De fapt, acest algoritm a folosit ca punct de plecare adresele MAC ale plăcilor de rețea ale utilizatorilor care l-au generat. Avantajul acestei metode a fost certitudinea absolută a unicității GUID-ului generat (deoarece nu există două adrese MAC la fel), dar în acest fel a fost posibilă urmărirea de la un GUID la computerul care l-a generat, cu consecințe potențiale privind confidențialitatea și siguranța.

După ce a apărut această problemă, Microsoft a modificat algoritmul (implementat în API-ul UuidCreate ) astfel încât să nu mai depindă de adresele MAC. Este încă posibil să generați în mod voluntar GUID-uri dependente de adresa MAC utilizând API-ul UuidCreateSequential .

Pentru a afla dacă a fost generat un GUID cu prima sau a doua versiune a algoritmului, este necesar să faceți referire la prima cifră a celui de-al treilea bloc. Deci, în exemplul anterior

 {3F2504E0-4F89- 1 1D3-9A0C-0305E82C3301}

Dacă această cifră este 1, ca în acest caz, codul este generat de prima versiune; invers, dacă cifra este un 4, este generată de al doilea.

Subtipuri

GUID-urile utilizate în COM pot fi de diferite tipuri, în funcție de funcția lor:

  • IID - identificatori de interfață
  • ClsID - identificatori de clasă (conținut în HKEY_CLASSES_ROOT \ CLSID)
  • LibID - identificatori de bibliotecă
  • CatID - identificatori de categorie (prezența unui CATID într-o clasă identifică acea clasă ca aparținând unei anumite categorii)

DCOM - urile au introdus alte subtipuri

  • AppID - identificatori ai aplicației
  • MID - identificatori ai mașinii
  • IpID - identificatori de pointer de interfață
  • CID - identificatori aleatori care se referă la o sesiune RPC
  • OID - identificatori de obiecte
  • Oxid - identificatori exportatori de obiecte
  • SetID - identificatori ai unui grup de obiecte

Două GUID-uri identice cu subtipuri diferite pot coexista fără probleme în același sistem, dar nu este permisă existența a două GUID-uri identice cu același subtip.

GUID în XML

Există, de asemenea, GUID-uri în unele versiuni ale RSS-ului , marcate exact de eticheta guid , totuși nu au nimic de-a face cu GUID-urile COM Microsoft. De fapt, în cadrul RSS, GUID-urile pot fi orice număr, orice șir sau URL , valabil sau nu. De obicei, folosim URL-ul unic al postării ca GUID.

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT