Like ToolFern? Prefer us as your source on Google →

UUID Generator

Generate UUIDs, ULIDs and NanoIDs in bulk. Pick v4 (random), v1 (time-based), v3 or v5 (deterministic, from a namespace and name), ULID, or NanoID, choose how many, flip UUIDs to UPPERCASE, and copy with one click. Built with secure randomness, entirely in your browser.

How to generate UUIDs, ULIDs and NanoIDs

  1. Pick a Type: v4 (random), v1 (time-based), v3 or v5 (deterministic, from a namespace and name), ULID, or NanoID.
  2. Enter how many you need (1 to 1,000). For NanoID, also set the length.
  3. For v3 or v5, pick a namespace (DNS, URL, or a custom UUID) and type the name to hash.
  4. Optionally tick UPPERCASE (UUIDs only, ULID and NanoID keep their own casing).
  5. Click Generate, you’ll get one identifier per line in the result box.
  6. Hit Copy to grab the whole list, or export the batch as a CSV file, a JS array, or a Python list.

What is a UUID?

A UUID (Universally Unique Identifier), sometimes called a GUID on Microsoft platforms, is a 128-bit value written as 32 hexadecimal digits in the familiar 8-4-4-4-12 pattern, for example 3f2504e0-4f89-41d3-9a0c-0305e82c3301. The default version 4 UUID is built almost entirely from random data. Of the 128 bits, 6 are fixed to mark the version and variant, leaving 122 random bits, enough that you can generate them freely without any central coordination and still never realistically see a collision.

Developers reach for UUIDs as database primary keys, request and trace IDs, file names, idempotency keys, and anywhere two systems need to mint identifiers independently without clashing. Because a v4 UUID is purely random, it doesn’t leak timestamps, counters or machine details the way some other schemes can.

UUID v1, v3 and v5, and when to use them

Version 1 UUIDs encode a timestamp and a random node id instead of pure randomness, so they trend upward over time and reveal roughly when they were generated. Version 3 and version 5 UUIDs are deterministic: hash a namespace UUID together with a name, MD5 for v3, SHA-1 for v5, and you get back the exact same identifier every time. That makes them useful when two systems need to derive the same id from the same input independently, for example turning a domain name or URL into a stable, repeatable UUID without a lookup table or a shared database. Prefer v5 over v3 where you have a choice, SHA-1 is stronger than MD5, though neither needs to be cryptographically secure for this purpose.

ULID and NanoID, modern alternatives to UUID

ULID packs a millisecond timestamp and 80 random bits into a 26-character Crockford Base32 string that sorts lexicographically in the same order it was created, useful as a database primary key when you want ids that are both unique and roughly time-ordered. NanoID is a shorter, URL-safe random string (21 characters by default, adjustable) built from a 64-character alphabet, popular in modern JavaScript backends as a compact alternative to a full UUID. Neither is part of the UUID standard, but both work fine as plain strings anywhere a UUID would otherwise go.

Frequently asked questions

What’s the difference between a UUID and a GUID?

They’re the same thing. “GUID” is Microsoft’s term; “UUID” is the term used in the relevant standards. The format and guarantees are identical.

What’s the difference between v1, v3, v4 and v5?

v4 is random. v1 is built from a timestamp and a random node id. v3 and v5 hash a namespace and a name together, MD5 for v3 and SHA-1 for v5, so the same input always produces the same UUID. Most applications default to v4 unless they specifically need a deterministic or time-based id.

Should I use a UUID, a ULID or a NanoID?

All three work as unique identifiers. Pick a UUID for maximum compatibility with existing systems and standards. Pick a ULID if you want ids that sort by creation time, handy as a sortable database key. Pick a NanoID if you want a shorter, URL-safe string and don’t need UUID’s fixed format.

Can I generate more than 1,000 at once?

This tool caps each batch at 1,000 to keep the output readable and fast. Generate again to create more, every batch is independent (v3 and v5 will repeat the same identifier, since they’re deterministic for a given namespace and name). Need the batch outside the browser? Export it as a CSV file, a JS array, or a Python list.

Should I use upper or lower case?

The standard form is lowercase, and most systems accept either. Use the UPPERCASE option only if a specific platform or API requires it.

Are these suitable for security tokens?

A v4 UUID has 122 bits of randomness, which is strong, but it’s an identifier, not a secret. For passwords or API secrets, use a dedicated generator and treat the value as confidential.

Found this useful? Share it