UUID v5 Generator

Turn a name into a stable UUID v5 by hashing it with a namespace using SHA-1. Use the DNS, URL, OID or X.500 namespace or your own; same name, same ID. UUID v5 is the recommended name-based version, handy for deriving IDs from emails, URLs or other natural keys.

About this tool

What is UUID v5?

UUID version 5 generates an identifier from data you already have. It takes a namespace UUID and a name, hashes them with SHA-1, and keeps 122 bits of the hash. The same namespace and name always produce the same UUID, on any machine and in any programming language. This makes v5 useful when two systems need to agree on an ID without talking to each other, for example when importing the same records twice or when mapping URLs, email addresses or product codes to UUID primary keys.

How to use

  1. Enter the value to convert in Name.
  2. Select a namespace in Namespace (DNS, URL, OID or X.500 DN), or enter your own UUID in Namespace UUID (the selector then shows Custom).
  3. The UUID v5 is shown below as you type. Copy it or download it as uuid5.txt with the buttons in the corner.

Tip: for your own application, create one fixed namespace with the random button next to Namespace UUID, save it, and reuse it for every name.

Features

  • Instant result for every keystroke
  • DNS, URL, OID and X.500 DN namespaces built in
  • Any custom namespace UUID, with a clear error if it is not a valid UUID
  • Random UUID v4 button to create a new namespace
  • Inputs are kept in this browser

Examples

NamespaceNameUUID v5
DNSwww.example.com2ed6657d-e927-568b-95e1-2665a8aea6a2
DNSpython.org886313e1-3b8a-5372-9b90-0c9aee199e5d
URLhttps://example.com/dd2c1780-811a-5296-81c5-178a0ef488bc

These match common libraries, for example uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org') in Python or v5('python.org', v5.DNS) in the JavaScript uuid package. The third block always starts with 5.

Choosing a namespace

  • DNS: the name is a domain name.
  • URL: the name is a full URL.
  • OID / X.500 DN: the name is an object identifier or a distinguished name.
  • Custom: any UUID you choose. Use it to keep your IDs separate from other applications that hash the same names.

FAQ

Should I use UUID v5 or v3?

Use v5 unless you must match existing v3 values. Both work the same way, but v5 uses SHA-1 instead of MD5, and RFC 9562 prefers it.

Can the name be recovered from a UUID v5?

Not directly, because hashing is one-way. However, if the names are easy to guess (such as email addresses), someone can hash candidates and compare, so do not treat a v5 UUID as a way to hide data.

Does the weakness of SHA-1 matter here?

Not for normal use. Known SHA-1 attacks involve deliberately crafted collisions; they do not affect using v5 to create consistent identifiers.

Is my input uploaded?

No. The UUID is computed locally in your browser.

πŸ†” UUID v3 Generator
Create a name-based UUID v3 by hashing a namespace and a name with MD5. Pick the DNS, URL, OID or X.500 namespace or paste your own; same input, same UUID.
πŸ†” UUID v1 Generator
Generate up to 10,000 time-based UUID v1 values at once from the current timestamp, a clock sequence and a random node ID. Copy them or download a .txt file.
πŸ†” UUID v4 Generator
Generate random UUID v4 values (GUIDs) in bulk, up to 10,000 at once, using your browser's cryptographically secure random generator. Copy or download as text.
πŸ†” UUID v7 Generator
Generate time-ordered UUID v7 values, up to 10,000 at once. Each starts with a Unix timestamp in milliseconds, so they sort by creation time as database keys.
πŸ†” ULID Generator
Generate ULIDs: 26-character IDs made of a millisecond timestamp and 80 random bits in Crockford Base32. Create up to 10,000 at once, in increasing order.
πŸ†” Pairwise Test Generator
Generate pairwise (all-pairs) and n-wise test cases in your browser. Enter factors and values in a grid and exclude combinations with PICT constraints.