GUID (Globally Unique Identifier) är en statistiskt unik 128 -bitars identifierare . Dess huvudfunktion är unikhet , vilket gör att du kan skapa utökningsbara tjänster och applikationer utan rädsla för konflikter orsakade av identiska identifierare. Även om varje enskild GUID inte garanteras vara unik, är det totala antalet unika nycklar så stort ( 2128 eller 3,4028 ×1038 ) att det är extremt osannolikt att två matchande nycklar kommer att genereras oberoende av varandra i världen.
"GUID" hänvisar till vissa implementeringar av en standard som kallas Universally Unique Identifier ( UUID ).
I texten är GUID skriven som en sträng med trettiotvå hexadecimala siffror, indelade i grupper med bindestreck och eventuellt omgiven av krulliga klammerparenteser:
{6F9619FF-8B86-D011-B42D-00CF4FC964FF} [1]ID-struktur:
GUID STRUKT Data1dd Data2 dw data3 dw Data4 dw data5dp GUID SLUTARUUID skrivs ofta som en textsträng {G4G3G2G1-G6G5-G8G7-G9G10-G11G12G13G14G15G16}, där Gx är värdet på motsvarande strukturbyte i hexadecimal representation [1] :
Data1 = G4G3G2G1 Data2 = G6G5 Data3 = G8G7 Data4 = G9G10G11G12G13G14G15G16
Till exempel, '22345200-abe8-4f60-90c8-0d43c5f6c0f6' motsvarar hexadecimalt 128-bitars nummer 0xF6C0F6C5430DC8904F60ABE822345200
Det maximala värdet i GUID motsvarar decimaltalet 340282366920938463463374607431768211455 ( 2128 -1).
Microsoft använder GUIDs i OLE , COM , DCOM och Windows Runtime — till exempel som identifierare för klasser ( CLSID ), gränssnitt ( IID ), parametrerbara gränssnitt ( PIID ), typbibliotek ( LIBID ). Att använda en GUID säkerställer att två (möjligen inkompatibla) versioner av samma komponent kan ha samma namn men särskiljas av GUID.
Algoritmen som Microsoft använde för att generera GUID fick stor kritik. I synnerhet användes nätverksadapterns MAC-adress som grund för att generera en del av GUID-siffrorna , vilket till exempel innebar att enligt detta MS Word- dokument (som också får sin egen unika GUID när det skapades) , var det möjligt att fastställa på vilken dator den skapades. Microsoft ändrade senare algoritmen så att den inte inkluderar MAC-adressen.
Windows Runtime-projektionen, gemensam för alla inhemska programmeringsspråk, återanvänder COM-mekanismer. Windows Runtime använder mycket gränssnitt som parametriseras av typen av argument, som inte hade någon match i COM. Ur COM-synpunkt existerar inte sådana generiska gränssnitt, bara deras specialiseringar finns. Generiska gränssnitt tilldelas en parametrisk PIID istället för en IID, och deras specialisering IID beräknas så att samma IID produceras för samma parametrar utan någon förhandling. Programmatisk beräkning av specialitets-ID:n kräver kunskap om algoritmen. Under en lång tid publicerade inte Microsoft algoritmen, och det enda sättet för översättarutvecklare att beräkna det var att anropa WinAPI RoGetParameterizedTypeInstanceIID , endast tillgängligt på Windows 8 och högre. 2019 publicerades algoritmen.
GUID-genereringen följer standarden UUID version 5 (SHA-1). Namnutrymme UUID: 11f47ad5-7b73-42c0-abae-878b1e16adee. Den hashbara strängen är konstruerad från det generiska gränssnittets PIID och en lista med typparametrar kodade enligt den publicerade grammatiken.
GUID är också grunden för GUID-partitionstabellen , ersättningen för MBR i EFI .