Guides

GUID vs UUID: Are They the Same Thing?

Desmond Okaforยทยท6 min read

Somewhere in your career a teammate will insist that GUIDs and UUIDs are different, and you'll waste twenty minutes trying to convert one into the other. Save yourself the trouble: they're the same thing. A GUID is a UUID. The name changed, the value didn't โ€” and the handful of differences that do exist are cosmetic, not structural.

The myth: two different ID formats

It's an easy assumption. One codebase generates 'GUIDs,' another generates 'UUIDs,' the acronyms are different, and Microsoft's tooling even prints them wrapped in curly braces. So it looks like two competing standards you have to translate between.

You don't. Both are a 128-bit number written as 32 hexadecimal digits in the same 8-4-4-4-12 grouping, with the same bits reserved to mark the version and variant. Paste one into a field expecting the other and it just works.

The evidence: same standard, two names

The identifier was standardized as a UUID โ€” universally unique identifier. Microsoft implemented the very same thing for COM and Windows and called its version a GUID โ€” globally unique identifier. Two organizations, two names, one 128-bit format. There was never a second specification to reconcile.

A quick way to see it: generate a random UUID and a random GUID from any two libraries and lay them side by side. Same length, same hex, same dashes. The UUID Generator labels its output 'UUID'; a .NET Guid.NewGuid() labels the identical bytes 'GUID.'

The generic-drug analogy

Think of acetaminophen. In the United States it's sold as Tylenol; in much of the rest of the world the same molecule is paracetamol. Different name on the box, different marketing, exactly the same compound doing exactly the same job. GUID is Microsoft's brand name; UUID is the generic name. Nobody asks a pharmacist to 'convert' paracetamol into acetaminophen, and you don't need to convert a GUID into a UUID.

The differences that actually remain

Same value doesn't mean zero differences โ€” just that they're skin-deep:

  • Casing. Microsoft tends to print GUIDs in uppercase (6F9619FF-...); most UUID tooling prints lowercase (6f9619ff-...). Hex is case-insensitive, so the value is identical โ€” but a naive string comparison will call them different. Compare normalized case, not raw text.
  • Curly braces. The Windows registry and some APIs wrap GUIDs in braces: {...}. That's presentation, not data. Strip the braces and you have a plain UUID string.
  • Byte order (the one real trap). Legacy version 1 GUIDs stored their first three fields in little-endian byte order, while the UUID spec is big-endian. For random version 4 values this never matters, but if you're migrating old time-based GUIDs into a system that reads them big-endian, the bytes can reshuffle into a different-looking value. Check the ordering before you trust a bulk conversion.

Versions apply to both

Because they're the same format, the version system is shared. A GUID can be version 4 (random), version 5 (name-based), or the newer version 7 (time-ordered) exactly like a UUID โ€” the trade-offs are the same ones covered in UUID v4 vs v7. When someone says 'random GUID,' they mean a version 4 UUID. When they worry about random keys fragmenting a database index, the same UUID vs auto-increment reasoning applies unchanged.

Which term should you use?

Match your platform's vocabulary so your code reads naturally:

  • GUID if you're in .NET, SQL Server, Windows, or COM โ€” that's what the APIs and docs call it.
  • UUID everywhere else โ€” Postgres, Java, Python, Ruby, Go, and the broader web all use this name.

Either way you generate them the same way and store the same 128 bits. If you want the full tour of what those bits mean and where the format came from, what is a UUID walks through it. And if you've ever wondered whether two of these could ever come out the same, are UUIDs unique? does the collision math.

The takeaway

GUID versus UUID isn't a real contest โ€” it's one 128-bit identifier wearing two names, the way Tylenol and paracetamol are one drug. Ignore the casing and the curly braces, watch the byte order only when you're moving old version 1 values across systems, and otherwise treat them as interchangeable. Generate v4 for random IDs or v5 for name-based ones with the UUID Generator, call the result whatever your stack calls it, and move on.

Try the tools

Frequently Asked Questions

Is a GUID the same as a UUID?

Yes. They are the same 128-bit identifier defined by the same specification. 'GUID' (globally unique identifier) is the name Microsoft uses across Windows, .NET, and SQL Server; 'UUID' (universally unique identifier) is the name used almost everywhere else. The value itself is identical.

Why does Microsoft call it a GUID instead of a UUID?

It's historical. Microsoft adopted the identifier for COM and Windows in the early 1990s and branded its implementation 'GUID.' The underlying format is the same one standardized as a UUID, so the two names have described the same thing all along.

Do GUIDs have versions like UUIDs?

Yes. A GUID carries the same version nibble as a UUID, so you'll see version 1 (time-based), version 4 (random), version 5 (name-based), and the newer version 7 (time-ordered). A random GUID is a version 4 UUID by another name.

What are the curly braces around a GUID?

They're a Microsoft display convention, common in the Windows registry and some APIs: {6F9619FF-8B86-D011-B42D-00CF4FC964FF}. The braces aren't part of the value โ€” strip them and you have a plain UUID string.

Can I use a GUID in a system that expects a UUID?

Almost always, yes โ€” they're the same bytes. The one gotcha is legacy version 1 GUIDs, where Microsoft historically stored the first three fields in little-endian order. If you're moving old GUIDs between a Microsoft system and a big-endian UUID system, verify the byte order so the value doesn't silently reshuffle.

DO

Desmond Okafor writes for CodeUtilityKit, where the team builds free, privacy-first developer tools that run entirely in your browser. Every guide is written and reviewed by developers who use these tools daily.