Globally unique identifier
A Globally Unique Identifier or GUID is a pseudo-random number used in software applications. Each generated GUID is supposed to be unique.
The GUID is an implementation by Microsoft of a standard called Universally Unique Identifier or UUID, specified by the Open Software Foundation (OSF). It is essentially a 16-byte number, written in hexadecimal form, such as:
- 3F2504E0 4f89 11D3 9A 0C 03 05 E8 2C 33 01
GUIDs are written using a four-byte word, 3 two-byte words, and 6 one-byte words, such as:
- {3F2504E0-4F89-11D3-9A0C-0305E82C3301}
The structure of the data type is:
GUID STRUCT Data1 dd Data2 dw Data3 dw Data4 dw Data5 db 6 GUID ENDS
In the Microsoft component object model, GUIDs are used to uniquely distinguish different software component interfaces. This means that two versions of a component can have exactly the same name, but still be different to the user in case the GUID has changed.
GUIDs are also inserted into documents from Microsoft Office programs, as these are regarded as objects as well.
Algorithm
The algorithm used for generating new GUIDs has been widely criticized. At one point, the users network card MAC address was used as a base for several GUID digits, which meant that e.g. a document could be tracked back to the computer that created it. After this was discovered, Microsoft changed the algorithm so that it no longer contains the MAC address. This privacy hole was used when locating the creator of the Melissa worm.