Globally Unique Identifier
|
A Globally Unique Identifier or GUID is a pseudo-random number used in software applications. Each generated GUID is "statistically guaranteed" to be unique. This is based on the simple principle that the total number of unique keys (<math>2^{128}<math> or <math>3.4028 \times 10^{38}<math>) is so large that the possibility of the same number being generated twice is virtually zero.
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 a six-byte word, 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 (possibly incompatible) versions of a component can have exactly the same name but still be distinguishable by their GUIDs.
GUIDs are also inserted into documents from Microsoft Office programs, as these are regarded as objects as well. Even audio or video streams in the Advanced Streaming Format (ASF) are identified by their GUIDs.
Algorithm
The algorithm used for generating new GUIDs has been widely criticized. At one point, the user's network card MAC address was used as a base for several GUID digits, which meant, for example, that a document could be tracked back to the computer that created it. This privacy hole was used when locating the creator of the Melissa worm. After this was discovered, Microsoft changed the algorithm so that it no longer contains the MAC address.
RSS
There is also a guid tag in some versions of the RSS specification, which should contain a unique identifier for each individual article or weblog post. The contents of the guid can be any text, and in practice is typically a copy of the post URL.
External links
- DmaId for InstanceId Values (DCE Universally Unique IDentifiers, UUIDs) (http://www.infonuovo.com/dma/csdocs/sketch/instidid.htm)
- Syntax and semantics of the DCE variant of Universal Unique Identifiers (UUIDs) (http://www.opengroup.org/onlinepubs/9629399/apdxa.htm)
- Draft UUID specification (includes sample code) (http://www.webdav.org/specs/draft-leach-uuids-guids-01.txt)de:Globally Unique Identifier