UUID UUID Generator

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

短 UUID 生成器

把 128 位标识符压到 22 个 URL 安全字符,复制粘贴到哪都不会被截断。

  • 22 个字符而非 36 个
  • URL 安全
  • 8 / 12 / 16 字节

短 UUID 生成器

Short
范围为 1 至 1000。

结果 0

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

    什么是短 UUID

    标准 UUID 写成文本是 36 个字符,其中 4 个是连字符。如果把它按 base64url 编码,128 位可以压成 22 个字符,而且不含任何需要转义的符号。

    也可以生成更短的版本。8 字节(64 位)适合临时令牌,12 字节(96 位)介于两者之间,16 字节则和标准 UUID 一样多的随机位。

    使用方法

    1. 随机字节数里选择长度:8、12 或 16 字节。
    2. 设置数量,然后点击生成 UUID
    3. 结果使用 base64url 字母表,可以直接放进 URL 或文件名。

    适用场景

    • 短链接和分享链接的标识。
    • 对长度敏感的文件名或本地存储的键。
    • 没必要用满 128 位的临时令牌。

    结构

    从加密随机源取出 N 个字节,再用 base64url(A–Z、a–z、0–9、-、_)编码,并去掉末尾的等号填充。

    短 UUID 的定位

    什么时候该用哪个选项
    选项何时使用
    22 个字符128 位 base64url,随机强度等同标准 UUID
    标准 UUID36 个字符更易识别,任何系统都能直接解析
    v7需要按时间排序时用它,而不是更短的随机值

    UUID 各版本速查表

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

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

    代码示例

    javascript

    const b = new Uint8Array(16);
    crypto.getRandomValues(b);
    const id = btoa(String.fromCharCode(...b))
      .replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");

    python

    import os, base64
    id = base64.urlsafe_b64encode(os.urandom(16)).rstrip(b"=").decode()

    常见问题

    短 UUID 还是 UUID 吗?

    严格来说不是。它不再符合 8-4-4-4-12 的写法,因此不能被期望标准 UUID 的系统解析。但随机位是同样可靠的,作为标识符完全够用。

    应该选多少字节?

    临时值用 8 字节,普通用途用 12 字节,需要和 UUID 同等强度时用 16 字节。8 字节有 64 位随机数,在累计到几十亿个值之前都不会出现实际碰撞。

    为什么字符串里会有 - 和 _?

    这是 base64url 的字母表,相比标准 base64 的 +/,这两个字符在 URL 和文件名里不需要转义。