UUIDs (also called GUIDs) are universal unique identifiers. They help you create IDs that don’t collide across systems, clients, and services.
What is a UUID?
A UUID is a 128‑bit value designed to be unique without a central authority. They are ideal for database keys, API request IDs, file names, and distributed systems.
Which version should I use?
- v1: time‑based with node info; predictable order but may leak host details.
- v4: random‑based; simple and widely used, collisions are astronomically unlikely.
- v7: time‑ordered with randomness; great for databases and logs needing sort‑friendly IDs.
Under the hood, v1 combines a timestamp with node information to produce sortable identifiers; v4 relies on cryptographically secure randomness for high‑entropy, non‑predictable IDs; and v7 encodes a timestamp with random bits so IDs sort naturally by time while staying hard to guess. Choose the version that best matches your privacy and ordering needs.
When are UUIDs a good fit?
- Generating IDs on the client without a round trip.
- Distributed systems where multiple writers need unique IDs.
- Identifiers that should not reveal sequence or count (use v4).
- Log/event streams that benefit from chronological ordering (use v7).
You’ll find UUIDs everywhere: database primary keys, public API resource IDs, object names in cloud storage, mobile app offline data, message queues, and audit/event trails. They avoid collisions across services and environments without central coordination, which makes them ideal for modern, distributed architectures.
How to generate UUIDs safely
- Use a reputable library or platform API; avoid custom RNGs.
- Pick the version based on ordering needs and privacy.
- Validate format when consuming external inputs.
- Avoid custom transforms unless necessary.
Try our UUID Generator to create v1, v4, and v7 values - single or bulk - entirely in your browser.
Common mistakes
- Using weak randomness sources for v4.
- Storing UUIDs as strings when your database supports binary.
- Assuming v1 is private; it exposes timing and node info.
- Sorting random v4 UUIDs and expecting meaningful order.
Best practices
- Prefer v7 for write‑heavy tables that benefit from time ordering.
- Use v4 for privacy‑friendly IDs that don’t leak timing or host info.
- Document your chosen version and why.
- Consider binary storage and proper indexing for performance.
FAQs
Are UUID collisions possible? In theory yes, but with secure v4 or v7 generation they’re practically negligible.
Can I predict a UUID? No for v4/v7 with secure RNGs. v1 exposes timing and ordering, so never treat it as secret.
Should I use UUIDs as public IDs? Yes for most cases. Avoid sequential IDs in public APIs.
Explore more tools: