UUID version 3

UUID text7 sectionsUpdated

A v3 is the MD5 of a namespace UUID and a name, truncated to 128 bits with the version and variant bits overwritten. Same contract as v5, older hash.

Version 3 is the MD5 sibling of version 5. The derivation, the guarantees and the caveats are identical; only the hash differs, and that difference matters less than people expect.

What the converter readscomputed by the converter itself
in9073926b-929f-31c2-abc9-fad77ae3e8eboutuuid · RFC 9562 (10xx) · version 3

DNS namespace, example.com

indc7edcc8-7f17-3cd9-acb0-e2984e568005outuuid · RFC 9562 (10xx) · version 3

DNS namespace, bavix.github.io

Open the converter: UUID textNothing you paste leaves the browser.
On this page (7)

The derivation#

Namespace bytes, then the name bytes, hashed with MD5; keep the first 16 bytes, overwrite the version nibble with 3 and the variant bits with 10. The result is deterministic across languages and machines, exactly like a v5.

md5_high 0-47version 48-51md5_mid 52-63variant 64-65md5_low 66-127

An MD5 digest with six bits overwritten.

RFC 9562 § 5.3 · UUID Version 3The v3 layout

The same names as v5, for comparison#

Name (DNS namespace)UUID v3
example.com9073926b-929f-31c2-abc9-fad77ae3e8eb
bavix.github.iodc7edcc8-7f17-3cd9-acb0-e2984e568005
uuid-ui39ae9472-8cc2-3921-b4fc-a1d71a3cfee1

Compare these with the v5 table: same inputs, entirely different identifiers. Deriving an identifier is only reproducible if both sides agree on the version as well as the namespace and name.

Is MD5 a problem here?#

MD5 is broken for collision resistance, and a v3 does not depend on collision resistance: the identifier is truncated to 128 bits and six of those bits are overwritten, so neither v3 nor v5 offers cryptographic guarantees. What MD5 costs you is reputation, since a scanner will flag it on sight. What it buys you is compatibility with systems that already compute v3.

RFC 9562 § 6.5 · Name-Based UUID GenerationName-based generation, which treats the hash as a mapping function

When to pick which#

SituationVersion
New code, no constraintsv5
Matching identifiers an existing system already produced with MD5v3
A policy that forbids MD5 outrightv5
The identifier must be unguessableneither; use a random token

Questions people actually ask#

What is the difference between UUID v3 and v5?

Only the hash: v3 uses MD5, v5 uses SHA-1. The derivation, the determinism and the guarantees are the same.

Is UUID v3 insecure because MD5 is broken?

It was never a security primitive. The digest is truncated to 128 bits with six bits overwritten, so no version of a name-based UUID is unguessable.

Browse the reference