What can a UUID tell you?

    April 9, 2025
    4 min read
    uuid
    technical-deep-dive
    security
    identifiers

    At a glance, a UUID looks like a meaningless jumble of hexadecimal characters:

    code
    6ba7b810-9dad-11d1-80b4-00c04fd430c8

    But is it truly random noise—or can it tell you something deeper?

    🧬 Not All UUIDs Are Created Equal

    UUIDs come in several versions, and the information they can reveal varies dramatically depending on which version you're using.

    Let's break it down:

    • UUIDv1: Time-based, includes timestamp and MAC address
    • UUIDv4: Random, contains no traceable data
    • UUIDv5: Name-based, hashed from a namespace and name
    • UUIDv7: New kid on the block—sortable by time, privacy-friendly

    🔎 UUIDv1 – Revealing the Secrets of Time and Origin

    A UUIDv1 contains:

    • Timestamp (60 bits): You can extract the exact time it was generated
    • Clock sequence: Helps with uniqueness
    • MAC address (48 bits): Yep, it embeds the physical hardware address of the generating machine

    Here's the concern: UUIDv1 can expose when and where the ID was generated—not great for privacy or security.

    python
    import uuid
    u = uuid.uuid1()
    print(u)

    Want to reverse-engineer the time and MAC address? With the right tools, it’s possible.

    🎲 UUIDv4 – The Safe, Random Friend

    UUIDv4 is purely random. No timestamps. No device info. Nothing to trace.

    If your UUID looks like this:

    code
    f47ac10b-58cc-4372-a567-0e02b2c3d479

    …it’s probably a UUIDv4.

    Perfect for:

    • Public APIs
    • User-facing identifiers
    • Privacy-conscious applications

    However, since it's random, you can't sort it by time or derive any info about when it was created.

    🧠 UUIDv5 – Deterministically Mysterious

    UUIDv5 is created by hashing a name (like a URL or username) with a namespace using SHA-1.

    The result?

    • Same input = same UUID
    • No traceable timestamp or MAC
    • Useful for deduplication or consistent identifiers

    Not great if you're looking for randomness, but awesome when you want repeatable UUIDs.

    ⏳ UUIDv7 – Time-Ordered and Database-Friendly

    UUIDv7 aims to be:

    • Time-sortable
    • Privacy-safe
    • Fast to generate

    Unlike UUIDv1, it avoids MAC addresses but still encodes timestamp data in a database-optimized format.

    This makes it ideal for:

    • High-volume event logging
    • Ordered inserts in databases
    • Privacy-respecting analytics

    UUIDv7 is still in draft spec, but gaining traction fast.

    ⚠️ What Should You Watch Out For?

    If you're using UUIDs in your application, here’s what to consider:

    • Privacy: Avoid UUIDv1 if you don’t want to expose MAC or time info.
    • Performance: Random UUIDs (v4) may hurt index performance; v7 solves that.
    • Traceability: Need to know when something happened? UUIDv1 or v7 helps.

    🧪 Want to Analyze a UUID?

    Here’s a cool way to analyze one using Python:

    python
    import uuid
    u = uuid.UUID("6ba7b810-9dad-11d1-80b4-00c04fd430c8")
    print(u.version)  # Outputs the UUID version

    You can also use online tools like uuidtools.com to break down any UUID.

    🧵 Final Thoughts

    What can a UUID tell you? Potentially a lot—or absolutely nothing—depending on how it was generated.

    • UUIDv1 tells you when and where
    • UUIDv4 tells you nothing
    • UUIDv5 tells you how
    • UUIDv7 tells you when, but not who

    Choosing the right UUID version is about balancing traceability, privacy, and performance. Pick wisely, and your systems (and users) will thank you.


    Stay tuned for a future deep-dive on how to analyze UUID entropy and collision risk in real-world systems!

    Generate Your Own UUIDs

    Ready to put this knowledge into practice? Try our UUID generators:

    Generate a Single UUID

    Create a UUID with our fast, secure generator

    Bulk UUID Generator

    Need multiple UUIDs? Generate them in bulk

    Summary

    This article explores what information can be extracted from different UUID versions, revealing how some UUIDs may encode timestamps, MAC addresses, or randomness, and what that implies for privacy and system design.

    TLDR;

    UUIDs may look like gibberish, but depending on their version, they can carry meaningful metadata.

    Key points to remember:

    • UUIDv1 includes timestamp and MAC address — revealing both time and device
    • UUIDv4 is fully random and tells you nothing about origin

    UUIDs should be chosen with care, especially in privacy-sensitive or user-facing contexts.

    Cookie Consent

    We use cookies to enhance your experience on our website. By accepting, you agree to the use of cookies in accordance with our Privacy Policy.