What is a UUID?
A UUID (Universally Unique Identifier) is a 128-bit identifier, conventionally written as 32 hex digits split into five groups (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). Version 4 UUIDs — the most common variant, and what this tool generates — are generated from random bits rather than derived from a timestamp or hardware address. With 122 random bits, the odds of two randomly generated UUID v4 values ever colliding are astronomically low. GUID (Globally Unique Identifier) is Microsoft's name for the exact same format, used throughout Windows, .NET, and SQL Server — a UUID v4 generated here is a valid GUID, and the two terms are used interchangeably.
What is a ULID?
A ULID (Universally Unique Lexicographically Sortable Identifier) is a 26-character alternative to UUIDs. It encodes a 48-bit millisecond timestamp in its first 10 characters and 80 bits of randomness in the remaining 16, using Crockford's Base32 alphabet (which excludes the easily-confused characters I, L, O, and U). Because the timestamp comes first, ULIDs generated later always sort after ones generated earlier — useful as a database primary key where UUID's random ordering hurts index locality. See the ULID specification for the full format.
UUID vs. ULID — which should I use?
- UUID v4 (a.k.a. GUID) — the most widely supported format; use it when compatibility with existing systems, libraries, or database column types matters.
- ULID — shorter, URL-safe without escaping, and sortable by creation time; a good fit for database primary keys or event IDs where insertion order matters.
Frequently asked questions
What's the difference between a UUID and a GUID?
None, structurally — they're the same 128-bit format. "UUID" is the term used in the RFC standard and by most non-Microsoft ecosystems; "GUID" is Microsoft's name for it, used in Windows, .NET, COM, and SQL Server. A UUID v4 generated by this tool is a valid GUID and vice versa; you can use either term interchangeably.
Can two UUID v4 values ever collide?
In theory, yes — but in practice, no. With 122 random bits, you'd need to generate roughly 2.7 quintillion UUIDs before a 50% chance of any collision, per the birthday paradox. It's not considered a practical risk for virtually any application.
Are ULIDs generated here guessable from their timestamp?
The timestamp portion is not secret — anyone can see roughly when a ULID was generated. The 80 random bits still make the full value unguessable, but if that's a concern for your use case (e.g. using it as an unguessable token), use a UUID v4 or a dedicated random token instead.
Is this compatible with Python, Java, or .NET's UUID/GUID functions?
Yes — UUID v4 is a standard format (RFC 4122), so a value generated here is identical in form to one from Python's uuid.uuid4(), Java's UUID.randomUUID(), or .NET's Guid.NewGuid(). Unlike, say, regex syntax, there's no language-specific dialect to worry about — a UUID is a UUID everywhere.
Does this tool generate identifiers on a server?
No — UUID v4 uses crypto.randomUUID() and ULID uses crypto.getRandomValues(), both built into your browser. Nothing is sent to Pingfloat's servers.