In most real-world software, GUID and UUID refer to the same kind of identifier: a 128-bit value typically written as 32 hexadecimal digits in the familiar 8-4-4-4-12 format. The difference is mainly terminology and ecosystem — not the underlying concept.
Short answer: Yes, they're effectively the same. “GUID” is common in Microsoft/Windows/.NET contexts. While “UUID” is the standard name used in IETF specifications and cross-platform tooling.
Different naming: “GUID” is a Microsoft term while “UUID” is the standard term used by specifications and most cross-platform docs.
Different binary representations in some APIs: some platforms store or serialize GUID bytes in a different internal byte order than the canonical UUID string format.
Different default generators: libraries may default to different versions (e.g., v4 vs v7) even though the identifier type is still the same.
Canonical format and where “version” lives
Whether you call it a GUID or a UUID, the most common representation is a 36-character string (32 hex digits + 4 hyphens). The version is encoded as the first hex digit of the third group.
Canonical format: 8-4-4-4-12
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
Layout: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
^ ^
| └─ N = Variant (layout family)
└────── M = Version (1..8)
Variant meaning (practical view): the variant defines the layout family of the UUID. In other words, how the remaining bits should be interpreted. In modern software, almost all UUIDs you encounter use the RFC variant.
Variant (high bits of the 4th group):
0xxx → NCS (obsolete)
10xx → RFC 4122 / RFC 9562 (standard, most common)
110x → Microsoft (legacy GUID layout)
111x → Reserved for future use
Practical rule: if the first hex digit of the fourth group is 8, 9, a, or b, the GUID / UUID uses the standard RFC layout. That is what virtually all modern UUIDs use.
Warnings and pitfalls
GUID byte-order confusion: some systems store the first fields in little-endian order in memory or certain binary formats. Your string may look the same, but raw bytes might differ between platforms.
Not a secret: GUIDs / UUIDs are identifiers, not access tokens. Don't use them as “unguessable passwords” or authorization secrets.
Sorting behavior depends on representation: sorting by GUID / UUID string is not the same as sorting by raw bytes in every database/driver.
Frequently Asked Questions
Yes, GUID (Globally Unique Identifier) and UUID (Universally Unique Identifier) are effectively the same 128-bit identifier with the same 8-4-4-4-12 format. The difference is primarily terminology: "GUID" is commonly used in Microsoft/Windows/.NET contexts, while "UUID" is the standard term used in IETF specifications and cross-platform development.
Microsoft adopted the term "GUID" early in Windows and COM development, and it became part of their API naming conventions. While the underlying identifier is the same as UUID, Microsoft continues to use "GUID" for consistency with existing codebases and documentation. The System.Guid type in .NET is functionally equivalent to UUIDs in other platforms.
Yes, in most cases. Both use the same 128-bit structure and canonical string format. However, be aware of potential byte-order differences when working with binary representations. Some systems (especially older Windows APIs) may store the first three fields in little-endian order in memory, while the string representation remains the same.
The canonical format is 8-4-4-4-12, representing 36 characters: 32 hexadecimal digits separated by four hyphens. Example: f47ac10b-58cc-4372-a567-0e02b2c3d479. This format is consistent across both GUID and UUID terminology.
Yes, both GUID and UUID support the same versions defined in RFC 9562.
Use UUID for standards-aligned, cross-platform documentation, as it's the term used in IETF specifications. Use GUID when working specifically with Microsoft/.NET technologies to match their naming conventions. For maximum clarity, you can mention both terms: "UUID (also known as GUID in Microsoft contexts)".
Some Microsoft APIs store the first three fields of a GUID in little-endian byte order in binary format, while other platforms may use big-endian (network byte order). The string representation is always the same, but when exchanging raw binary data between systems, you may need to handle byte-order conversion. Always use the canonical string format for interoperability.
Conclusion
Use the term UUID when you want standards-aligned language and GUID when matching Microsoft/.NET naming. But treat them as the same underlying 128-bit identifier. The important part is choosing the right version (v4, v6 and v7) for your use case.
Learn more
These articles expand on related concepts, formats and practical considerations.