GUID Generator

Generate random GUIDs (Globally Unique Identifiers) for Microsoft .NET, databases, and software development.

Generator Settings

Generated GUIDs

Click "Generate GUIDs" to create new GUIDs

GUIDs Generated
0
Format
Standard

What Is a GUID?

A GUID (Globally Unique Identifier) is a 128-bit integer value used as a unique reference number in software development and computing systems. The term GUID is largely synonymous with UUID (Universally Unique Identifier), the open standard defined in RFC 4122. Microsoft popularized the GUID label in the context of COM/DCOM, OLE, and the .NET framework, while UUID is the IETF's formally standardized name for the same concept.

The standard textual representation of a GUID consists of 32 lowercase hexadecimal digits divided into five groups separated by hyphens, following the pattern xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Each group contains 8, 4, 4, 4, and 12 hex characters respectively, for a total of 32 hex digits (128 bits). For example: 550e8400-e29b-41d4-a716-446655440000.

Because a GUID is 128 bits long, the total number of possible values is 2128, which equals approximately 3.4 × 1038. This enormous number makes collisions—two independently generated GUIDs that are identical—extraordinarily unlikely in practice, even when billions of GUIDs are generated every day across millions of systems worldwide.

GUIDs appear throughout modern software: as primary keys in relational databases, as tracking tokens in distributed systems, as unique identifiers for software components, registry entries, file system objects, and API resources. Their collision resistance means different teams and systems can generate identifiers independently without coordinating through a central authority, which is essential for distributed computing and microservices architectures.

How This Generator Produces GUIDs

This GUID generator tool builds each GUID by sampling 32 random hexadecimal characters and then inserting hyphens at the standard positions to form the canonical format. The underlying algorithm works as follows:

  1. An alphabet string of the 16 hexadecimal digits (0123456789abcdef) is defined.
  2. A loop runs 32 times. On each iteration, Math.floor(Math.random() * 16) picks a random index into the alphabet, appending the corresponding character to a buffer string.
  3. After the 32-character buffer is complete, hyphens are inserted using substr to produce the groups: characters 0–7, 8–11, 12–15, 16–19, and 20–31.
  4. The result is the standard GUID string xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

The generator then applies the selected format transformation and optionally converts everything to uppercase before returning the final string. You can generate between 1 and 100 GUIDs in a single click.

Note that because this tool uses Math.random()—a pseudo-random number generator (PRNG) built into the browser—the GUIDs produced are Version 4–style (random) identifiers, but they are not cryptographically secure in the strict RFC 4122 sense, which recommends using a cryptographically strong PRNG. For most development and testing scenarios this is perfectly adequate. For high-security contexts requiring verifiable randomness, use a language or library that calls the operating system's CSPRNG (e.g., crypto.randomUUID() in modern browsers, or System.Guid.NewGuid() in .NET).

GUID Assembly Formula

GUID = hex[0..7] + "-" + hex[8..11] + "-" + hex[12..15] + "-" + hex[16..19] + "-" + hex[20..31]

Where:

  • hex[0..7]= First 8 random hex characters (4 bytes)
  • hex[8..11]= Next 4 random hex characters (2 bytes)
  • hex[12..15]= Next 4 random hex characters (2 bytes)
  • hex[16..19]= Next 4 random hex characters (2 bytes)
  • hex[20..31]= Final 12 random hex characters (6 bytes)

GUID Output Formats Explained

Different languages, frameworks, and systems expect GUIDs in slightly different textual forms. This generator supports five output formats so you can copy the GUID directly into your code or configuration without manual editing:

Format Name Example Output Common Use
Standard a3f1b2c4-d5e6-f7a8-b9c0-d1e2f3a4b5c6 REST APIs, JSON, SQL
Braces {"{"}a3f1b2c4-d5e6-f7a8-b9c0-d1e2f3a4b5c6{"}"} C#/.NET, Windows Registry, COM
Parentheses (a3f1b2c4-d5e6-f7a8-b9c0-d1e2f3a4b5c6) Some legacy applications
No Hyphens a3f1b2c4d5e6f7a8b9c0d1e2f3a4b5c6 Database binary storage, compact tokens
URN urn:uuid:a3f1b2c4-d5e6-f7a8-b9c0-d1e2f3a4b5c6 XML, RDF, URN namespaces

The Uppercase toggle converts all hex characters to capital letters (A–F instead of a–f). This is often required by older Windows APIs and COM-based systems that accept only uppercase GUIDs.

The No Hyphens format produces a 32-character hex string. This is useful when storing GUIDs as a fixed-length CHAR(32) or BINARY(16) in a database to avoid storing the four hyphen characters and save a small amount of storage per row—a meaningful saving when a table has millions of rows.

GUID vs UUID: Key Differences and Versions

The terms GUID and UUID are often used interchangeably, and for most practical purposes they refer to the same 128-bit identifier structure. The IETF formalized the UUID specification in RFC 4122, defining five versions that each use a different strategy to ensure uniqueness:

  • Version 1 (Time-based): Combines the current timestamp with the MAC address of the generating machine. Uniqueness is guaranteed by the combination of precise time and a hardware-specific node identifier.
  • Version 2 (DCE Security): Similar to Version 1 but replaces part of the timestamp with a POSIX UID or GID. Rarely used in modern systems.
  • Version 3 (Name-based, MD5): Generates a UUID by hashing a namespace UUID and a name string using MD5. Produces the same output deterministically for the same inputs.
  • Version 4 (Random): Uses random or pseudo-random numbers for all bits except a few version and variant indicator bits. This is by far the most commonly used version today, and is the style this generator produces.
  • Version 5 (Name-based, SHA-1): Like Version 3 but uses SHA-1 hashing, providing better collision resistance for name-based generation.

Microsoft's GUID implementation in .NET (System.Guid.NewGuid()) typically produces Version 4 (random) GUIDs. When you see a GUID in a Visual Studio project file, a NuGet package manifest, or a Windows Registry key, it is almost certainly a Version 4 random GUID formatted with braces.

RFC 9562 (2024) extended the UUID specification to define Versions 6, 7, and 8, which are optimized for database indexing by making the identifier monotonically sortable by creation time. Version 7 UUIDs in particular are gaining adoption in modern databases because their time-ordered nature avoids the index fragmentation problem that random Version 4 UUIDs cause in B-tree indexes.

Common Use Cases for GUIDs in Software Development

GUIDs are one of the most versatile building blocks in software engineering. Understanding when and why to use them helps you make better architectural decisions.

Database Primary Keys

Using GUIDs as primary keys instead of sequential integers allows records to be created on any node in a distributed system without a central sequence generator. This is essential for multi-database, offline-capable, or eventually-consistent architectures. The trade-off is that random GUID keys cause more index page splits and higher storage overhead compared to integer sequences, which is why time-ordered UUIDs (v7) are increasingly preferred for new systems.

REST API Resource Identifiers

Exposing GUIDs as resource IDs in REST APIs hides internal sequential IDs, preventing enumeration attacks where a malicious user increments an ID to access another user's resource. GUIDs make it infeasible to guess valid resource identifiers.

Session and Token Management

GUIDs serve as session tokens, password-reset tokens, and email verification links. Their 128-bit entropy makes them resistant to brute-force guessing. For high-security uses, cryptographically generated GUIDs (e.g., from crypto.randomUUID()) are recommended over PRNG-based generators.

Distributed Tracing and Logging

In microservices and cloud systems, a GUID called a correlation ID or trace ID is attached to every request at the entry point. Each service that handles the request logs the same ID, enabling engineers to stitch together the full lifecycle of a request across dozens of services and log streams.

Software Packaging and COM

On Windows, COM class identifiers (CLSIDs), interface identifiers (IIDs), type library IDs, and Visual Studio project GUIDs are all stored as GUIDs in the registry or project files. Tools like Visual Studio automatically generate these GUIDs when new components are created.

File and Document Identifiers

Document management systems, CMS platforms, and cloud storage services use GUIDs to name stored files and objects, ensuring no collision even when users upload files with identical names.

How Unique Are GUIDs Really?

The probability of generating two identical Version 4 GUIDs is vanishingly small. A Version 4 GUID has 122 random bits (the other 6 bits encode version and variant). The total keyspace is therefore 2122 ≈ 5.3 × 1036 distinct values.

Using the birthday problem approximation, the number of random GUIDs you would need to generate before the probability of a collision reaches 50% is approximately 2.71 × 1018 (2.71 quintillion). To put that in context: if every person on Earth generated one billion GUIDs per second, it would still take tens of thousands of years before a collision became likely. For any realistic application, GUIDs can be treated as guaranteed unique.

The practical uniqueness guarantee breaks down only if the random number generator is poorly seeded or deterministic—for example, if two VMs are cloned from the same snapshot at the exact same moment and both generate GUIDs before the PRNG state diverges. This is a real concern in virtualized and containerized environments and is one reason to prefer OS-level CSPRNG sources when uniqueness is safety-critical.

Worked Examples

Generate a Single Standard GUID

Problem:

A developer needs one GUID in standard hyphenated format to use as a database primary key in a new SQL table row.

Solution Steps:

  1. 1Set the Format dropdown to 'Standard (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)'.
  2. 2Set the Number of GUIDs input to 1.
  3. 3Leave Uppercase unchecked (lowercase is the conventional default for SQL and REST APIs).
  4. 4Click 'Generate GUIDs'. The tool samples 32 random hex characters and inserts hyphens at positions 8, 12, 16, and 20.
  5. 5Example output: a7f3c2d1-9e4b-5f6a-8b0c-1d2e3f4a5b6c

Result:

One standard GUID ready to paste as a SQL VARCHAR(36) or uniqueidentifier value.

Generate GUIDs in Braces Format for C# / .NET

Problem:

A .NET developer is writing a unit test and needs to initialize a System.Guid value in C# code using a literal string. The C# Guid.Parse() method accepts the 'B' format specifier, which expects braces.

Solution Steps:

  1. 1Set Format to 'Braces ({xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx})'.
  2. 2Set Number of GUIDs to 3 (to have options).
  3. 3Check Uppercase, since .NET GUID literals are conventionally uppercase.
  4. 4Click 'Generate GUIDs'. The tool wraps each standard GUID with { and } and converts all letters to uppercase.
  5. 5Example output: {B4E1F2A3-C5D6-E7F8-A9B0-C1D2E3F4A5B6}

Result:

Three uppercase braces-formatted GUIDs suitable for direct use in C# Guid.Parse() calls or .NET configuration files.

Generate a No-Hyphens GUID for Compact Storage

Problem:

A database architect wants to store GUIDs in a MySQL CHAR(32) column (instead of CHAR(36)) to save 4 bytes per row across a billion-row table, which saves roughly 3.7 GB of storage.

Solution Steps:

  1. 1Set Format to 'No Hyphens (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)'.
  2. 2Set Number of GUIDs to 10 to generate a batch.
  3. 3Leave Uppercase unchecked.
  4. 4Click 'Generate GUIDs'. The tool generates each GUID and removes all four hyphens using replace(/-/g, ''), producing a 32-character hex string.
  5. 5Example output: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6

Result:

Ten 32-character compact GUIDs ready to insert into a CHAR(32) or BINARY(16) database column.

Generate a URN-Format UUID for XML/RDF

Problem:

A data engineer is building an RDF knowledge graph and needs to mint new resource URIs that follow the urn:uuid: scheme defined in RFC 4122.

Solution Steps:

  1. 1Set Format to 'URN (urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)'.
  2. 2Set Number of GUIDs to 5.
  3. 3Leave Uppercase unchecked (URN UUIDs are conventionally lowercase per RFC 4122).
  4. 4Click 'Generate GUIDs'. The tool prepends 'urn:uuid:' to each standard GUID.
  5. 5Example output: urn:uuid:c3d4e5f6-a7b8-c9d0-e1f2-a3b4c5d6e7f8

Result:

Five URN-formatted UUIDs ready for use as RDF subject URIs or XML namespace identifiers.

Tips & Best Practices

  • Use the 'Copy All' button to copy every generated GUID to the clipboard at once, separated by newlines—ideal for pasting into a spreadsheet or SQL INSERT statement.
  • When storing GUIDs in MySQL or MariaDB, use the BINARY(16) column type and convert with UNHEX(REPLACE(uuid, '-', '')) on insert and HEX() on read to minimize storage and maximize index efficiency.
  • In SQL Server, prefer NEWSEQUENTIALID() over NEWID() for clustered index primary keys to avoid index fragmentation from random GUIDs.
  • For .NET development, use the Braces + Uppercase format and paste directly into Guid.Parse() or as a literal value in attribute decorators like [DefaultValue("{...}")].
  • The URN format is required by some XML Schema validators and RDF tools that treat the identifier as a URI; always use the urn:uuid: prefix in those contexts.
  • Generate a batch of 10–20 GUIDs at once and keep them in a scratch file; having pre-generated GUIDs on hand speeds up development when you need unique IDs quickly.
  • For API testing with tools like Postman or Insomnia, generate multiple GUIDs here and use them as test resource IDs to avoid accidentally modifying real data.
  • If you need deterministic GUIDs for the same input (useful in testing or content addressing), look into UUID v3 or v5, which derive the UUID from a hash of a namespace and a name string.

Frequently Asked Questions

GUID and UUID refer to the same 128-bit identifier concept. UUID is the IETF standard term defined in RFC 4122, while GUID is Microsoft's term for the same structure as used in Windows, COM, and .NET. In practice, a .NET System.Guid and an RFC 4122 UUID v4 have exactly the same format and are interchangeable in most contexts.
They are statistically unique with overwhelming probability. Each GUID has 122 random bits, giving a keyspace of roughly 5.3 × 10^36 values. The chance of two randomly generated GUIDs colliding is so small that it is effectively impossible in any real-world application. However, this tool uses the browser's Math.random() PRNG rather than a cryptographic random source, so the GUIDs should not be used as security tokens in high-stakes authentication systems.
Use the 'Braces' format with Uppercase enabled. C# commonly represents GUIDs with curly braces and uppercase letters (e.g., {A1B2C3D4-E5F6-A7B8-C9D0-E1F2A3B4C5D6}), and the Guid.Parse() method's 'B' format specifier expects this layout. You can also use the Standard format and pass it to Guid.Parse() without braces.
Yes, and this is very common, especially in distributed or multi-database architectures where you cannot rely on a central auto-increment sequence. The trade-off is that random GUIDs cause index fragmentation in B-tree indexes (like SQL Server's clustered index or MySQL's InnoDB primary key index), which can slow down insert performance at high scale. Strategies to mitigate this include using sequential GUIDs (NEWSEQUENTIALID() in SQL Server) or switching to time-ordered UUID v7 identifiers in modern systems.
A standard GUID string takes 36 characters (32 hex digits + 4 hyphens). The No Hyphens format takes 32 characters, saving 4 bytes per value when stored as a character type. Storing as BINARY(16) instead of CHAR(36) saves 20 bytes per value. On a table with one billion rows, the binary storage approach saves approximately 18.6 GB compared to CHAR(36), which can meaningfully reduce storage costs and improve cache efficiency.
A URN UUID follows the format urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx as specified in RFC 4122 Section 3. It is used when a UUID needs to appear as a URI—for example, as a subject identifier in an RDF triple, as a namespace in an XML document, or in any system that requires a URI rather than a bare string. The urn:uuid: prefix makes the UUID a globally resolvable URI within the URN namespace.
For non-security-critical uses such as database primary keys, tracking IDs, and test data, browser-generated GUIDs using Math.random() are perfectly adequate. For security-sensitive uses—session tokens, CSRF tokens, password reset links—use crypto.randomUUID() (available in all modern browsers and Node.js 14.17+) or a server-side CSPRNG-backed UUID library, as these use the operating system's cryptographically secure random source.

Sources & References

Last updated: 2026-06-05

💡

Help us improve!

How would you rate the GUID Generator?

<>

Editorial Note

MyCalcBuddy Editorial Team

This page is maintained as an educational calculator reference.

Source

Formula Source: Standard Mathematical References

by Various

UpdatedLast reviewed: May 2026
CheckedFormula checks are based on standard references and internal QA review.