GUIDs get used a lot in creating session keys for web applications. I’ve always wondered about the safety of this practice. Since the GUID is generated based on information from the machine, and the time, along with a few other factors, how hard is it to guess of likely GUIDs that will come up in the future. Let’s say you started 1000, or 10000 new sessions, to get a good dataset of the GUIDs being generated. Would this make it any easier to generate a GUID that might be used for another session. You wouldn’t even have to guess a specific GUID, but just keep on trying GUIDs that might be generated at a specific period of time.
Share
.NET Web Applications call Guid.NewGuid() to create a GUID which is in turn ends up calling the CoCreateGuid() COM function a couple of frames deeper in the stack.
From the MSDN Library:
And if you check the page on UuidCreate:
The last contains sentence is the answer to your question. So I would say, it is pretty hard to guess unless there is a bug in Microsoft’s implementation.