Version 3 UUID Generator

Deterministic: MD5 hash of a namespace + name.

The name is hashed as UTF-8, so non-ASCII text (é, 日本語, emoji) matches Python, Java, Go and .NET. The same namespace + name always gives the same UUID.

Decode
Options & format

Formatting is applied instantly in your browser. A GUID is a UUID: tick Uppercase + Braces for the Microsoft registry style.

API
http://uuidtools.com/api/generate/v3?namespace=ns:dns&name=base64:ZXhhbXBsZS5jb20

Plain-text and JSON API docs: no key required.

About Version 3 UUIDs

A version 3 UUID is a deterministic UUID: it is the MD5 hash of a namespace UUID followed by a name, with the version and variant bits overwritten. The same namespace and name always give the same UUID.

Names are hashed as UTF-8 bytes, which is what Python, Java, C# (with Encoding.UTF8), Go and the RFC examples do. The "Copy API call" link uses base64 so any character, including emoji, round-trips exactly.

Structure

md5(namespace + name) with version = 3 and variant = 10

When to use it

  • You need stable IDs derived from existing data (URLs, domain names, emails) and must stay compatible with older systems that chose MD5.

When to avoid it

  • New work: prefer v5 (SHA-1) or, for 2024+, consider v8 with SHA-256. Never rely on v3 for secrecy; it is easy to brute-force.

Frequently asked questions

What namespaces are predefined?

RFC 9562 defines DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8), URL (…b811…), OID (…b812…) and X.500 (…b814…). You can also use any UUID of your own as a namespace.

Why does my UUID differ from another tool's?

Almost always text encoding. Some tools hash UTF-16, Latin-1 or ASCII bytes instead of UTF-8. UUIDTools always hashes UTF-8.