Skip to content
100% in your browser. Nothing you paste is uploaded — all processing runs locally. Read more →

UUID v3 Generator

UUID v3 is deterministic: the same namespace + name always returns the same UUID. Pick a namespace below and type a name.

How v3 works

The 16-byte namespace is concatenated with the UTF-8 bytes of the name, fed through MD5, and then a few bits are overwritten to mark the result as version 3, variant RFC 4122. The resulting 128 bits are presented in the standard 8-4-4-4-12 hex format.

The standard namespaces

NamespaceUUID
DNS6ba7b810-9d1d-11d1-80b4-00c04fd430c8
URL6ba7b811-9d1d-11d1-80b4-00c04fd430c8
OID6ba7b812-9d1d-11d1-80b4-00c04fd430c8
X.5006ba7b814-9d1d-11d1-80b4-00c04fd430c8

Custom namespaces

For internal use, generate one v4 UUID, hard-code it as your namespace, and use it forever. That gives you a unique ID space for your project without colliding with anyone else's.

v3 in code

// JavaScript / TypeScript
import { v3 } from "uuid";
const NS = "6ba7b811-9d1d-11d1-80b4-00c04fd430c8"; // URL ns
v3("https://example.com/users/42", NS);

// Python
import uuid
uuid.uuid3(uuid.NAMESPACE_URL, "https://example.com/users/42")

// Go
import "github.com/google/uuid"
uuid.NewMD5(uuid.NameSpaceURL, []byte("https://example.com/users/42"))

v3 vs v5 — pick v5 for new code

The only difference between v3 and v5 is the hash function: v3 uses MD5, v5 uses SHA-1. They're otherwise identical in shape and use case. SHA-1 is faster on modern CPUs and has fewer known weaknesses than MD5, so for any new project, prefer v5.

Only choose v3 when you need byte-for-byte compatibility with an existing system that already generates v3 UUIDs. The values are not interchangeable.

Real-world use cases

Common pitfalls

FAQ

What is a namespace UUID?

UUID v3 hashes a namespace UUID together with a name string using MD5. The same namespace + name always produces the same UUID. Standard namespaces are predefined for DNS, URL, OID, and X.500 names; you can also use any UUID you choose as your own namespace.

v3 vs v5 — which should I pick?

v3 uses MD5; v5 uses SHA-1. Both are deterministic. Prefer v5 for new code unless you need byte-for-byte compatibility with an existing v3 system. SHA-1 is not collision-resistant for adversarial inputs, but it's strictly better than MD5 for this purpose.

Is UUID v3 cryptographically secure?

No — and it's not meant to be. v3 is a deterministic identifier, not a security primitive. Don't use it as a token or hash for sensitive data.

What's a real use case?

Generating stable IDs for entities derived from a stable input — e.g. one UUID per Git commit hash, per (tenant, slug) pair, or per email-as-username. Same input → same UUID, no need to store a mapping.