How to use the guid validator
- Paste or type your GUID or UUID string into the input field.
- The guid validator checks the format automatically as you type.
- Review the result rows for validity, normalized form, version, and variant.
- Copy the normalized value for use in your code or database.
How GUID validation works
A GUID (Globally Unique Identifier) is a 128-bit value typically written as 32 hexadecimal characters split into five groups by hyphens: 8-4-4-4-12. The guid validator strips common wrappers like curly braces or the urn:uuid: prefix, then checks that what is left is either 32 bare hex digits or the 8-4-4-4-12 hyphenated grouping.
Once the raw hex is confirmed, the tool reads specific bit positions to determine the version and variant. For example, in 550e8400-e29b-41d4-a716-446655440000, the character after the third hyphen is 4, indicating version 4. The first character of the fourth group is a (binary 1010), which places it in the RFC 4122 variant because the top two bits are 10.
GUID versions explained
The version number occupies four bits in the 13th octet of the identifier. Each version defines how the value was generated:
| Version | Name | Description |
|---|---|---|
| 1 | Time-based | Uses a timestamp and the MAC address of the generating machine. |
| 2 | DCE Security | Embeds POSIX UID/GID with a timestamp. Rarely used. |
| 3 | Name-based (MD5) | Derived by hashing a namespace and name with MD5. |
| 4 | Random | All 122 non-fixed bits are generated randomly. Most common today. |
| 5 | Name-based (SHA-1) | Same as version 3 but uses SHA-1 instead of MD5. |
| 6 | Reordered time-based | Version 1 data with the timestamp fields reordered so values sort by time. |
| 7 | Unix epoch time-based | A 48-bit Unix millisecond timestamp followed by random bits. |
| 8 | Custom | Layout left to the application or vendor. |
If you need to create new identifiers rather than check existing ones, use a guid generator to produce version 4 values on demand.
Understanding variants
The variant field determines the layout of the GUID. It is encoded in the most significant bits of the clock_seq_hi_and_reserved octet (the first character of the fourth group).
- RFC 4122 (variant 1): Top two bits are
10. Hex characters 8, 9, a, b. This covers virtually all modern UUIDs. - NCS backward compatibility: Top bit is
0. Hex characters 0 through 7. - Microsoft COM/DCOM: Top three bits are
110. Hex characters c, d. - Reserved for future use: Top three bits are
111. Hex characters e, f.
This guid validator reports the detected variant so you can confirm the identifier conforms to the standard your system expects. The version digit only has a meaning for the RFC 4122 variant (8, 9, a or b), so for the other variants the tool shows the version as not defined instead of guessing. Versions 6 to 8 come from RFC 9562, which replaced RFC 4122.
Accepted input formats
The tool normalizes several common representations before validating. All of these resolve to the same 32-hex-digit core:
- Standard hyphenated:
550e8400-e29b-41d4-a716-446655440000 - No hyphens:
550e8400e29b41d4a716446655440000 - Curly braces:
{550e8400-e29b-41d4-a716-446655440000} - URN prefix:
urn:uuid:550e8400-e29b-41d4-a716-446655440000 - Mixed case:
550E8400-E29B-41D4-A716-446655440000
The normalized output always uses lowercase hyphenated form, which is the canonical representation defined in RFC 4122. If you also need to validate other structured identifiers, tools like the swift code validator handle banking codes in a similar fashion.
Common mistakes when working with GUIDs
Several pitfalls cause validation failures in production systems:
- Wrong length: A GUID must be exactly 128 bits (32 hex characters). Truncated or padded strings will fail.
- Invalid characters: Only hexadecimal digits (0-9, a-f) are allowed. Letters g through z are not valid.
- Confusing GUID with UUID: Technically they are the same 128-bit structure. Microsoft historically used the term GUID, while IETF standards use UUID. This guid validator handles both interchangeably.
- Ignoring the nil value:
00000000-0000-0000-0000-000000000000is structurally valid but represents a special nil identifier. Systems should treat it separately from real generated values.
Worked examples
| Example | Input | Result |
|---|---|---|
| Version 4 GUID | GUID or UUID string: 550e8400-e29b-41d4-a716-446655440000 | Valid: Yes; Normalized: 550e8400-e29b-41d4-a716-446655440000; Version: 4 (Random); Variant: RFC 4122 |
| Without hyphens | GUID or UUID string: 6ba7b8109dad11d180b400c04fd430c8 | Valid: Yes; Normalized: 6ba7b810-9dad-11d1-80b4-00c04fd430c8; Version: 1 (Time-based); Variant: RFC 4122 |
| With curly braces | GUID or UUID string: {123e4567-e89b-12d3-a456-426614174000} | Valid: Yes; Normalized: 123e4567-e89b-12d3-a456-426614174000; Version: 1 (Time-based); Variant: RFC 4122 |
| URN format | GUID or UUID string: urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479 | Valid: Yes; Normalized: f47ac10b-58cc-4372-a567-0e02b2c3d479; Version: 4 (Random); Variant: RFC 4122 |
FAQ
What is the difference between a GUID and a UUID?
There is no structural difference. GUID is the term Microsoft popularized, while UUID comes from the IETF standard (RFC 4122). Both refer to the same 128-bit identifier format, and this guid validator treats them identically.
Can this tool tell me if a GUID actually exists in my database?
No. The guid validator only checks whether the string follows the correct format, version, and variant rules. It cannot query external systems to see if the identifier has been assigned.
Why does my GUID have curly braces?
Curly braces are a formatting convention used primarily in Windows COM programming and registry entries. They are not part of the 128-bit value itself. The validator strips them automatically during normalization.
Is a version 4 GUID truly random?
Yes. In a version 4 identifier, 122 of the 128 bits are generated randomly. The remaining six bits are fixed to indicate version 4 and the RFC 4122 variant. You can create new ones with a guid generator.
What is the nil GUID?
The nil GUID is 00000000-0000-0000-0000-000000000000. It is a special value where all 128 bits are zero. It passes format validation but is reserved to mean 'no identifier' in many protocols.
Does this guid validator upload my data?
No. All parsing, validation, and normalization happen locally in your browser. Nothing is sent over the network.