UtilityToolsLab

© 2026 UtilityToolsLab. Built and maintained by the UtilityToolsLab Team.

Free eBooks·About·Changelog·Privacy Policy·Terms of Service·Report a bug
HomeSecurityUUID v5

Related Tools

Password GeneratorPassword StrengthPassphrase GeneratorEntropy CalculatorAPI Key GeneratorPIN GeneratorSecret Key GeneratorPassword CheckerCSRF Token Generator

UUID v5 Generator (Namespaced)

Build deterministic RFC 4122 v5 UUIDs from a namespace and a name with SHA-1. The same inputs always return the same ID, on any machine.

You Might Also Like

All Security

Password Generator

Generate cryptographically strong random passwords with custom length, symbols, numbers and uppercase options. Nothing is sent to any server.

Password Strength

Score a password against what crackers actually try — wordlists, keyboard walks, leet spelling, dates — and see how long four attacks would take.

Passphrase Generator

Generate memorable passphrases using crypto.getRandomValues. 3–10 words, 5 separator styles, capitalize & digit options. Live entropy meter.

Entropy Calculator

Calculate password entropy in bits from a real password or a length-and-character-set policy, then compare crack times across four attack speeds.

Two services that have never spoken to each other need the same identifier for the same customer. Drawing a random v4 UUID cannot do that, because two draws never agree. UUID v5 Generator solves it the other way round: hash a name inside a namespace and both services derive the identical ID from the identical inputs, with nothing to coordinate and nothing to store.

Pick one of the four namespaces RFC 4122 defines, or paste a UUID of your own to carve out a private space, then type the name. Put several names on separate lines and each gets its own ID, which is how a batch of records is keyed in one pass.

A Real Example: python.org in the DNS Namespace

The DNS namespace is 6ba7b810-9dad-11d1-80b4-00c04fd430c8, and hashing the name python.org inside it gives 886313e1-3b8a-5372-9b90-0c9aee199e5d. That is a value you can check against any other implementation, because it is the worked example Python’s own uuid module documents. Press Load Sample and the tool switches to the URL namespace with https://wiki.internal/rel-240 as the name, which resolves to c2bafae0-9633-5d09-833e-251eb34c83a3. Change a single character of that URL and the result is unrecognisable, which is the avalanche property of the hash rather than anything this tool adds.

The Algorithm, in Four Steps

  1. The namespace UUID is converted from text back into its 16 raw bytes. This is why the namespace has to be a real UUID, and why a typo returns “A namespace must be a UUID, like 6ba7b810-9dad-11d1-80b4-00c04fd430c8.”
  2. Those 16 bytes are concatenated with the UTF-8 encoding of the name. Order matters: namespace first, name second.
  3. SHA-1 runs over the join and the first 16 bytes of the 20-byte digest are kept. The browser’s own Web Crypto does the hashing, so no hash implementation ships in the page.
  4. Byte 6 has its high nibble overwritten with 5 to mark the version, and byte 8 has its top bits set to the RFC 4122 variant. Those two edits are why a v5 UUID always shows a 5 at the start of its third group.

Not a Substitute for a Random ID

SHA-1 is broken for signatures, and v5 uses it anyway. That is fine here and worth understanding: the attack against SHA-1 is collision finding, which lets someone construct two inputs that hash alike, and a UUID derived from a name you already chose is not a target for it. What matters more in practice is that a v5 UUID is not a secret. Anyone who can guess the name can regenerate the ID exactly, so it is a poor choice for a password reset link, an unguessable share URL, or a session token. Reach for the v4 generator for those, which draws from a random source instead. Batches stop at 50 names per run and each name is truncated at 512 characters, and Copy all returns tab-separated name and UUID pairs that paste straight into a spreadsheet column.

Namespace

6ba7b810-9dad-11d1-80b4-00c04fd430c8 · name is a hostname, e.g. python.org

Type a name above, or press Load Sample. The same namespace and name always produce the same UUID.
Version 5 is a hash, not a draw. Re-enter the same namespace and name tomorrow, on another machine, in another language, and you get this same UUID back. That is what makes it useful as a stable key, and also why it is not a secret: anyone who can guess the name can reproduce the ID.