UUID UUID Generator

免费 · 无需注册 · 无需安装

UUID v1 生成器

生成包含时间戳和节点标识符的 UUID v1 —— 面向仍在依赖它的老系统。

  • 时间 + 节点
  • 100 纳秒精度
  • RFC 4122

UUID v1 生成器

v1
范围为 1 至 1000。
格式

结果 0

    所有值都在你的设备上用 Web Crypto API 生成,不会发送到浏览器之外的任何地方。 快捷键:Ctrl + Enter — 重新生成

    什么是UUID v1

    UUID v1 是 RFC 4122 最初定义的版本,把生成时刻和一个节点标识符编码进去:60 位时间戳从 1582 年格里高利历起算,精度为 100 纳秒;后面是时钟序列和节点值。

    在规范原意中,节点就是机器的 MAC 地址,这带来两个问题 —— 它会泄露机器身份,而且在虚拟机上往往并不唯一。所以现代实现通常改用随机节点值,本工具也是如此。

    使用方法

    1. 在下拉框里选择 v1
    2. 设置数量,最多 1000 条。
    3. 点击生成 UUID
    4. 需要的话可以打开大写和花括号选项。

    适用场景

    • 仍在生成 v1 且必须保持格式一致的遗留系统。
    • 需要从标识符本身读出创建时间的老代码。
    • 与依赖 v1 字段布局的第三方系统对接。

    结构

    前 60 位是自 1582 年起的 100 纳秒计数;接着 4 位版本号(1);然后是 14 位时钟序列和 48 位节点,最后 2 位是变体号。

    UUID v1 的定位

    什么时候该用哪个选项
    选项何时使用
    v1时间加节点,仅用于与遗留系统保持兼容
    v6携带同样的信息但时间在高位,不会打乱索引
    v7毫秒 Unix 时间;新项目应以此替代 v1

    UUID 各版本速查表

    版本可排序数据来源适合的场景
    v1不可以时间戳 + MAC 地址仍在依赖 v1 的既有系统
    v3不可以名称的 MD5 哈希必须使用 MD5 时的确定性标识符
    v4不可以122 位随机数绝大多数普通的唯一标识需求
    v5不可以名称的 SHA-1 哈希需要同一名称始终得到同一标识符
    v6可以重排后的时间戳既要随机性又要便于排序
    v7可以毫秒精度的 Unix 时间数据库主键和事件标识符
    v8不可以自定义位布局专有格式和实验性用途

    这七个版本都是 128 位,都用同样的 8-4-4-4-12 写法表示,区别只在于各个位代表什么。

    代码示例

    javascript

    // Web Crypto 不提供 v1
    const id = crypto.randomUUID();

    python

    import uuid
    id = str(uuid.uuid1())

    bash

    # 命令行
    uuidgen -t

    常见问题

    v1 会泄露我的信息吗?

    取决于实现。RFC 原意是把 MAC 地址写进节点字段,那样别人就能从 UUID 反推机器身份。本工具使用加密随机数作为节点值,不会暴露硬件信息。

    v1 按时间排序吗?

    大致可以,但并不严格。时间戳只精确到 100 纳秒,同一时刻生成的值顺序取决于时钟序列,而且在系统时钟回拨时顺序会翻转。v7 的排序更可靠。

    什么时候才该用 v1?

    只有在你必须与既有 v1 数据保持兼容时。新系统请直接用 v7。