GUID / UUID V2 - DCE Security (POSIX UID/GID)
GUID / UUID v2 is a rarely used DCE Security variant that embeds OS-level identifiers. Learn about its structure, severe privacy concerns and why it should not be used in new systems.
GUID / UUID v3 is a name-based identifier that generates deterministic GUIDs / UUIDs by hashing a namespace UUID and a name using the MD5 algorithm. The same namespace and name combination always produces the same GUID / UUID, making it useful for stable, repeatable identifiers derived from existing data.
GUID / UUID v3 was defined in the original UUID specifications around 1997 and standardized in RFC 4122 in July 2005.
V3 is not formally deprecated and remains valid in both RFC 4122 and RFC 9562. However, it is discouraged for new systems because it relies on MD5, which has known collision vulnerabilities and is no longer considered cryptographically secure.
For modern designs requiring name-based UUIDs, v5 (which uses SHA-1) is the recommended alternative. If you don't need deterministic identifiers, use v4 for randomness or v7 for time-ordered IDs.
Bit layout (practical view): GUID / UUID v3 follows the standard 128-bit layout and canonical string format 8-4-4-4-12. The GUID / UUID is derived by computing an MD5 hash over the concatenation of namespace UUID (binary) + name (bytes).
Generation algorithm: The namespace UUID is converted to its binary representation (16 bytes), concatenated with the name as a byte sequence, then hashed using MD5. The resulting 128-bit hash is used as the GUID / UUID, with specific bits overwritten for version and variant.
Fields (what exists): the 128-bit MD5 hash output is used as the base value. Certain bits are then overwritten to indicate the version (3) and the variant (RFC-defined layout). No timestamp, counter or node identifier exists in v3—the entire value is hash-derived.
Deterministic generation: GUID / UUID v3 is fully deterministic. Given the same namespace and name, the same GUID / UUID will always be generated, regardless of when or where it is created.
Field Bits Hex Digits Description
─────────────────────────────────────────────────────────────────────────
hash_low 32 8 Low 32 bits of MD5 hash
hash_mid 16 4 Middle 16 bits of MD5 hash
hash_hi_and_version 16 4 High 12 bits of MD5 hash + 4-bit version (0011)
hash_seq_hi_and_reserved 8 2 2-bit variant (10) + 6 bits from MD5 hash
hash_seq_low 8 2 8 bits from MD5 hash
hash_node 48 12 48 bits from MD5 hash
Hash algorithm: MD5 produces a 128-bit (16-byte) output. The version bits (bits 12-15 of hash_hi_and_version) are set to 0011 (3 in hex). The variant bits (bits 6-7 of hash_seq_hi_and_reserved) are set to 10 for RFC 4122 compliance. All other bits come directly from the MD5 hash output.
Namespaces: RFC 4122 defines well-known namespace GUIDs / UUIDs:
• DNS: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
• URL: 6ba7b811-9dad-11d1-80b4-00c04fd430c8
• OID: 6ba7b812-9dad-11d1-80b4-00c04fd430c8
• X.500: 6ba7b814-9dad-11d1-80b4-00c04fd430c8
Custom namespaces can also be used for application-specific requirements.
Try our GUID / UUID Inspector to see the hash-derived structure of v3 UUIDs.
GUID / UUID v3 uses the standard 8-4-4-4-12 canonical format with 32 hexadecimal digits separated by hyphens (36 characters total).
Canonical format: 8-4-4-4-12
Example (v3): 3d813cbb-47fb-32ba-91df-831e1593ac29
Layout: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
^ ^
| └─ N = Variant: is typically 8, 9, a or b (RFC variant)
└────── M = Version: first hex digit of the 3rd group is "3" for v3
Practical rule: in the canonical string, the version is encoded as the first hex digit of the third group. For v3 it is 3. The variant is indicated by the high bits of the fourth group (often rendered as 8-b in hex for the common standard variant). The remaining bits are derived from the MD5 hash.
6ba7b810-9dad-11d1-80b4-00c04fd430c8 (for domain names)6ba7b811-9dad-11d1-80b4-00c04fd430c8 (for URLs)6ba7b812-9dad-11d1-80b4-00c04fd430c8 (for ISO OID)6ba7b814-9dad-11d1-80b4-00c04fd430c8 (for X.500 DNs)GUID / UUID v3 provides deterministic, name-based identifiers that are useful for stable mappings and legacy interoperability. However, because it relies on MD5 and produces predictable values, it is discouraged for new systems. When name-based GUIDs / UUIDs are required today, v5 (SHA-1) is the preferred alternative.
These articles expand on related concepts, formats and practical considerations.