How does C# generate GUIDs?

Developer404 picture Developer404 · Dec 11, 2009 · Viewed 26.4k times · Source

How are GUIDs generated in C#?

Answer

Justin picture Justin · Dec 11, 2009

There is a really good article here that describes how GUIDs are generated, and in particular why a substring of a guid is not guarenteed to be unique.

Basiclly a GUID is generated using a combination of

  • The MAC address of the machine used to generate the GUID (so GUIDs generated on different machines are unique unless MAC addresses are re-used)
  • Timestamp (so GUIDs generated at different times on the same machine are unique)
  • Extra "emergency uniquifier bits" (these are used to ensure that GUIDs generated at nearly exactly the same time on the same machine are unique)
  • An identifier for the algorithm (so that GUIDs generated with a different algorithm are unique)

However, this is only 1 particular algorithm used for generating GUIDs (although I believe its the one used by the .Net framework), and is not the one used by the .Net framework