Is compiling the same C# program twice guaranteed to produce the same binary output?
No.
Well, that was an easy blog to write.
Maybe some more background might be useful.
What’s up with that?
Is compiling the same C# program twice guaranteed to produce the same binary output?
No.
Well, that was an easy blog to write.
Maybe some more background might be useful.
What’s up with that?
Let’s recap: a GUID is a 128 bit integer that is used as a globally unique identifier. GUIDs are not a security system; they do not guarantee uniqueness in a world where hostile parties are deliberately attempting to cause collisions; rather, they provide a cheap and easy way for mutually benign parties to generate identifiers without collisions. One mechanism for ensuring global uniqueness is to generate the GUID so that its bits describe a unique position in spacetime: a machine with a specific network card at a specific time. The downside of this mechanism is that code artifacts with GUIDs embedded in them contain easily-decoded information about the machine used to generate the GUID. This naturally raises a privacy concern.