Skip to main content

UUID v3 Generator

Generate deterministic UUIDs by MD5-hashing a namespace UUID together with a name. Same input always produces the same UUID.

Your V3 UUID

V3
9073926b-929f-31c2-abc9-fad77ae3e8eb

UUIDs from the same namespace + name are deterministic and identical every time.

What is UUID v3?

UUID v3 is the "name-based, MD5" variant. The algorithm:

  1. Take the 16-byte namespace UUID and the name (any string).
  2. Concatenate them and feed them into MD5 — the output is a 16-byte hash.
  3. Overwrite 6 bits to set the version (3) and variant (2).
  4. Format the result as the standard 8-4-4-4-12 string.

Because the algorithm is deterministic, every caller using the same namespace + name produces the same UUID — across machines, languages, and time. This is the property that makes v3 (and v5) useful as a way to derive a stable identifier from existing data.

Standard RFC namespaces

RFC 4122 / 9562 namespace 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
Pick the namespace whose semantics match your name. Or generate a custom namespace UUID v4 for your application and reuse it.

How to generate UUID v3 in your code

JavaScript / TypeScript
import { v3 as uuidv3 } from 'uuid';

const id = uuidv3('example.com', uuidv3.DNS);
// Always: '9073926b-929f-31c2-abc9-fad77ae3e8eb'
Python
import uuid

id = uuid.uuid3(uuid.NAMESPACE_DNS, 'example.com')
print(str(id))
# → '9073926b-929f-31c2-abc9-fad77ae3e8eb'
Java
import java.util.UUID;
import java.nio.charset.StandardCharsets;
// java.util.UUID.nameUUIDFromBytes() implements v3 (MD5)
UUID id = UUID.nameUUIDFromBytes("namespace+name".getBytes(StandardCharsets.UTF_8));

Frequently asked questions

UUID v3 is a deterministic UUID computed by MD5-hashing a namespace UUID concatenated with a name (any string). The same namespace + name always produces the same UUID, which makes v3 useful when you need a stable, reproducible identifier derived from existing data — for example, the same email address always mapping to the same UUID.