Generate UUID or GUID Online: Formats and v4 vs v7
To generate a UUID or GUID online, open GrabCast's UUID Generator, set Count and click Generate: you get random version 4 values in the standard lowercase, hyphenated form, which .NET, SQL Server, PostgreSQL and Java all accept. GUID is simply Microsoft's name for the same 128-bit identifier, so there is nothing separate to convert. What does differ between ecosystems is presentation and ordering: braces or none, upper or lower case, how the bytes are laid out in binary, and whether a random v4 or a time-ordered v7 suits your database. This guide is written for .NET developers, database administrators and anyone moving identifiers between Windows tooling and the rest of the stack, and it explains each of those differences with concrete examples.
๐ Try the UUID Generator tool now โ freeOpen โ
A GUID copied from Visual Studio, a UUID from a Linux server and a value from a browser can all describe the same kind of identifier yet fail a string comparison, because one is uppercase inside braces and another is lowercase without them. In binary form, Microsoft's layout stores the first three groups in reverse byte order, so a value converted carelessly between a .NET byte array and a PostgreSQL column comes out scrambled. The version choice matters too: on a table with tens of millions of rows, random keys and time-ordered keys behave very differently in an index. None of this shows up in a demo; all of it shows up in production.
UUID and GUID: same value, different habits
The layout is identical: 128 bits written as 32 hex digits in 8-4-4-4-12 groups. The habits around it differ by platform.
- Windows tools, the registry and COM class IDs usually show GUIDs uppercase inside braces, such as {3F2B8C1E-9A4D-4C7B-B1E2-5D6F7A8B9C0D}.
- In .NET, Guid.ToString() prints lowercase with hyphens; the B format adds braces, N removes the hyphens and P wraps the value in parentheses.
- SQL Server's uniqueidentifier type displays values in uppercase; PostgreSQL's uuid type prints lowercase.
- The RFCs say parsers should accept either case and generators should output lowercase, which is what the GrabCast tool does.
When a comparison fails between two values that look alike, normalize both to lowercase without braces before assuming they are different.
Byte order and sorting surprises on Microsoft platforms
The text form is universal, but binary storage is not. The .NET Guid.ToByteArray method writes the first three groups little-endian, so the bytes of 3f2b8c1e begin 1e 8c 2b 3f, while PostgreSQL and most other systems store them in the order you read them.
- Move identifiers between systems as text, or use a documented conversion, rather than copying raw 16-byte arrays.
- SQL Server compares uniqueidentifier values starting from the last group of bytes, not the first, so its sort order differs from a plain text sort.
- That same rule means a time prefix at the front of a value does not produce sequential inserts in SQL Server the way it does in PostgreSQL.
- For sequential keys inside SQL Server, the built-in NEWSEQUENTIALID() default is designed around that ordering; NEWID() gives random version 4 values.
Random v4 or time-ordered v7
Version 4 fills 122 bits with randomness and reveals nothing about when it was made. Version 7, standardized in RFC 9562 in May 2024, starts with a 48-bit Unix timestamp in milliseconds followed by random bits, so values created later sort after earlier ones.
- On large, write-heavy tables with a B-tree primary key, random v4 inserts land all over the index, splitting pages and pushing more of the index out of memory. v7 inserts land near the end, which keeps the index compact.
- v7 exposes creation time to anyone who sees the ID, which can matter for public identifiers such as account or invoice links.
- v4 is the safer default for tokens, public IDs and small tables, where index locality makes no measurable difference.
- Mixing versions in one column works technically but undermines the ordering benefit, so choose per column.
Time-ordered IDs carry a timestamp, which you can inspect with the Unix Timestamp Converter. For a fingerprint of data rather than an ID, use the Hash Generator.
Getting each version from the right tool
The GrabCast generator produces version 4 only, using the browser's crypto.randomUUID function, up to 100 values per click, one per line. That covers test data, config entries, registry keys and seed rows. For version 7, generate the value where the row is created, so the timestamp is accurate.
- PostgreSQL 18 adds a uuidv7() function; earlier versions need an extension or application code.
- .NET 9 and later offer Guid.CreateVersion7().
- Python 3.14 adds uuid.uuid7() to the standard library; older versions need a package.
- In SQL Server, NEWSEQUENTIALID() can only be used as a column default, not in an ad-hoc SELECT.
If you paste online-generated values into a Windows tool that expects braces, add them around the lowercase value; the parser does not care about case.
Step-by-step



Common mistakes to avoid
Pro tips
Frequently asked questions
Is a GUID different from a UUID?
No. GUID is Microsoft's name for the same 128-bit identifier. Differences are only in display style, such as uppercase letters and braces, and in how .NET lays out the bytes in binary.
Does the online generator make GUIDs Windows will accept?
Yes. Its random version 4 values are valid GUIDs. Add braces if a specific tool or registry file expects them.
Can I generate v7 with the GrabCast tool?
No. It produces version 4 only. Use uuidv7() in PostgreSQL 18, Guid.CreateVersion7() in .NET 9 or uuid.uuid7() in Python 3.14 instead.
Which version is best for a primary key?
For very large, write-heavy tables in databases such as PostgreSQL or MySQL, v7 usually indexes better. For small tables, public IDs and tokens, v4 is simpler and reveals nothing.
Why does SQL Server sort my GUIDs strangely?
It compares uniqueidentifier values starting from the last byte group, so the order differs from a text sort and from PostgreSQL.
A UUID and a GUID are the same identifier with different platform habits. Generate random v4 values online for fixtures and config, normalize case and braces before comparing, move values between systems as text rather than raw bytes, and create time-ordered v7 keys inside your database or runtime when index locality on big tables matters.
Related guides
Browse more: all text and developer guides ยท the UUID Generator tool