By · Updated

UUID Validator

Validate a List of UUIDs, Flagging Malformed Ones, and Decode Each Timestamp

No ratings yet

OneTask is free, with no sign-up, and built by one person.
If this tool saved you time, a coffee helps keep new ones coming.

How the UUID Validator works

This UUID validator checks format, version and variant. Paste one UUID per line. Each is checked for 32 hex digits in the 8-4-4-4-12 layout, then its version and variant nibbles are decoded so you can see whether it is a random v4, a time-ordered v7, a legacy v1 with a MAC address in it, or something non-standard. Version 1, 6 and 7 UUIDs have their creation time extracted. Braces, upper-case, missing hyphens and urn:uuid: prefixes are all accepted and noted.

UUID validator: what valid means

A UUID is 128 bits, written as 32 hexadecimal digits in five hyphenated groups of 8, 4, 4, 4 and 12. That is the whole syntax, and it is easy to get wrong in the ways this tool reports: a digit dropped when copying, a letter outside 0–9 a–f, hyphens in the wrong places after a bad string join, or a stray { from a Microsoft registry export. Anything that is not 32 hex digits is invalid, full stop.

Version and variant are inside the value. The first digit of the third group is the version. The first digit of the fourth group encodes the variant: 8, 9, a or b means an RFC 4122 (now RFC 9562) UUID, which is what every modern library produces. Values 0–7 there are the old Apollo NCS layout, c–d are reserved for Microsoft's legacy GUIDs, and e–f are held back for the future. A UUID with a non-RFC variant is still 128 valid bits, so it is reported as valid, but with a note that the version digit does not mean anything for it.

What the versions are. Version 4 is random: 122 bits of entropy, no information inside, the default choice for a decade. Version 7 is the modern replacement for database keys: the first 48 bits are a Unix millisecond timestamp so the values sort in creation order, which keeps index pages tidy. Version 1 is the original time-based form, with a 100-nanosecond timestamp counted from 1582 scattered across the first three groups and the generating machine's MAC address in the last group — which is why it is out of favour: it leaks the hardware address and the exact time. Version 6 is version 1 with the timestamp bits reordered so they sort. Versions 3 and 5 hash a name into a UUID with MD5 or SHA-1, version 2 is a rarely seen DCE security variant, and version 8 is reserved for custom layouts.

Timestamps are decoded. For v7 the tool reads the leading 48 bits as milliseconds and shows the UTC time. For v1 and v6 it reassembles the 60-bit timestamp, converts from the Gregorian epoch of 15 October 1582, and shows the time; for v1 it also shows the node field formatted as a MAC address. A v1 UUID from a real system will therefore tell you when and roughly where it was made, which is a useful audit fact and a useful privacy warning.

Special values. The nil UUID, all zeros, and the max UUID, all ones, are both defined by the standard and reported by name rather than as version 0 or version 15.

Forms that are accepted. Lower-case hyphenated is canonical. Upper-case is valid and common in .NET and SQL Server output, and is noted. No hyphens at all is how some databases store the value in a CHAR(32), and is noted. Braces {…} are the Microsoft GUID string form. urn:uuid: is the URN form used in XML and some APIs. Each of these wrappers is stripped, the core is validated, and the note tells you what form it arrived in so a mixed list can be normalised.

FAQ

Is a GUID the same as a UUID?

Yes for practical purposes. GUID is Microsoft's name for the same 128-bit identifier. The only differences are cosmetic — Windows tools tend to write them in upper-case with braces — and a historical quirk where some old COM GUIDs use the reserved Microsoft variant rather than the RFC one. Both are accepted here.

Why is a UUID with the wrong variant still marked valid?

Because it is still a syntactically correct 128-bit identifier and most software will store and compare it without complaint. The note tells you it is not an RFC-layout UUID, which matters only if you were relying on the version digit — for a non-RFC variant that digit is just data.

Can it tell me whether a UUID is real or already in use?

No. There is no registry of UUIDs and no way to look one up; the whole design is that any two independently generated values will not collide. What the tool can tell you is whether the value is well-formed, which version made it, and for time-based versions when it was made.

Why does a v1 UUID reveal a MAC address?

Because version 1 was designed in the 1980s to guarantee uniqueness by combining the current time with the network card's hardware address, on the assumption that no two cards share one. It works, but it means every v1 UUID a system emits identifies the machine that made it. If that matters, generate v4 or v7 instead.

Should I use v4 or v7 for database keys?

v7 if your database indexes the primary key in a B-tree, which is most of them. Random v4 keys land all over the index and cause page splits and cache misses under load; v7 keys arrive in time order and append cleanly. v4 remains fine for anything that is not an index key, and for cases where the creation time must not be inferable from the identifier.

See also: all Security & Identifiers tools, Dev Utilities, Formatters & Validators, Data & Encoding, SEO, Accessibility, AI.

Related tools