Comparison of GUID Versions
| Versions | v1 | v2 | v3 | v4 | v5 | v6 | v7 | v8 | empty-nil |
|---|---|---|---|---|---|---|---|---|---|
| Type | Time + Node (historically MAC) | DCE Security (UID/GID) | Name (MD5) | Random | Name (SHA-1) | Ordered time v1 | Time ordered + random | Custom / User-defined | Empty / Nil (all zeros) |
| Deterministic? | No | No | Yes | No | Yes | No | No | Depends | Yes |
| Sortable? | Yes ~100 nanoseconds | Partial ~100 nanoseconds | No | No | No | Yes ~100 nanoseconds | Yes Millisecond | Depends | N/A |
| Secure? | MAC leak (historically) | Leaks IDs | MD5 | Yes | SHA-1 | Yes | Yes | Custom | No (not unique) |
| Typical Use | Distributed systems | Legacy DCE systems | Namespace-based IDs | General purpose (Recommended) | Stable API IDs | Database indexing | Latest most modern | Experimental, app-specific | Sentinel / “no value” / placeholder |
| Standardized | RFC 4122 -> RFC 9562 (July 2005 -> May 2024) | RFC 4122 -> RFC 9562 (July 2005 -> May 2024) | RFC 4122 -> RFC 9562 (July 2005 -> May 2024) | RFC 4122 -> RFC 9562 (July 2005 -> May 2024) | RFC 4122 -> RFC 9562 (July 2005 -> May 2024) | RFC 9562 (May 2024) | RFC 9562 (May 2024) | RFC 9562 (May 2024) | RFC 4122 -> RFC 9562 (July 2005 -> May 2024) |
| Notes | Includes timestamp + Node (historically the MAC address). Ordered but exposes hardware info. | Embeds POSIX UID/GID + MAC address. Rarely supported and considered obsolete. | Deterministic, but MD5 is cryptographically broken. | Pure randomness (122 random bits). Extremely low collision probability. | Deterministic like v3 but uses SHA-1, which is no longer fully secure. | Improved v1 format with sortable structure + privacy-safe design. | Combines millisecond timestamps with strong randomness. Ideal for distributed systems. | Flexible GUID / UUID layout reserved for application-defined use. Not recommended for generic scenarios. | Not a real identifier, used to represent “no value”. Never generate or use it for uniqueness. |