UUID UUID Generator

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

UUID v8 生成器

生成 UUID v8 —— RFC 9562 为专有布局预留的版本,122 位全部由你的应用决定。

  • 自定义布局
  • 完全自由
  • RFC 9562

UUID v8 生成器

v8
范围为 1 至 1000。
格式

结果 0

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

    什么是UUID v8

    UUID v8 是 RFC 9562 给出的一条逃生通道:除了必须写死的版本号(8)和变体号,剩下的 122 位可以由应用自行定义。

    搜索引擎、时序数据库和分布式系统常把内部字段(分片号、序列号、自定义时间戳)打包进这 122 位,从而获得一个既能被外部当作标准 UUID 处理、又贴合自身需求的值。

    使用方法

    1. 在下拉框里选择 v8
    2. 设置数量,然后点击生成 UUID
    3. 本工具生成的是随机填充的 v8,可作为标准兼容的占位符或测试值使用。

    适用场景

    • 把分片号、序列号等内部字段编码进 UUID。
    • 在正式定义自有格式之前先做原型验证。
    • 需要标准长度和格式、但内部语义自定的场景。

    结构

    前 48 位由应用自由使用,接着 4 位是版本号(8),然后是 12 位自由数据和2 位变体,最后 62 位同样自由。只有在 128 位格式和这两处标记上是固定的。

    UUID v8 的定位

    什么时候该用哪个选项
    选项何时使用
    v8122 位由应用自定义,RFC 只规定长度与两处标记
    v4开箱即用的随机标识符,不需要自定义布局
    v7需要时间排序时用它,不必自己实现排序逻辑

    UUID 各版本速查表

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

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

    代码示例

    javascript

    // 写入 6 字节自定义时间戳,其余填随机数
    const b = new Uint8Array(16);
    crypto.getRandomValues(b);
    const ts = BigInt(Date.now());
    for (let i = 0; i < 6; i++)
      b[i] = Number((ts >> BigInt((5 - i) * 8)) & 0xffn);
    b[6] = (b[6] & 0x0f) | 0x80;   // 版本 8
    b[8] = (b[8] & 0x3f) | 0x80;   // 变体

    python

    # Python 3.14+
    import uuid
    id = str(uuid.uuid8(bytes(8) + bytes(range(8))))

    常见问题

    v8 的这 122 位能随便用吗?

    可以,但必须自己保证唯一性。RFC 只规定了 128 位长度和版本号、变体号的位置,其余部分完全由部署方决定。

    v8 和「扩展 UUID」是一回事吗?

    不是。扩展 UUID 曾被提议用于编码域标识,但从未成为标准;v8 是 RFC 9562 中正式定义的自定义版本。

    什么时候该用 v8?

    只有当你确实需要把内部字段塞进 UUID,或者要与某个已经采用 v8 的系统对接时。普通用途请选 v4 或 v7。