piapia123
zh

UUID / ULID / NanoID 生成

生成器

所有处理都在浏览器本地完成,数据不上传服务器

输出

一次生成一整列 ID,每行一条,可以直接粘进表格或配置脚本。四种类型各有各的用处:v4 是 122 位纯随机,适合当「猜不到的编号」;v7 的前 48 位是毫秒时间戳,按字符串排序就是按生成时间排序,当数据库主键时新行总落在索引末尾,不会像 v4 那样把 B 树索引页打散;ULID 同样时间有序,但用 Crockford Base32 编码,26 个字符就够;NanoID 更短,21 个字符且只用 URL 安全字符,适合放进短链接。

功能

  • 四种类型:UUID v4、UUID v7、ULID、NanoID
  • 一次生成 1–1000 条,每行一条,方便整列复制
  • UUID v4 的版本位与变体位严格按 RFC 4122 写入,任何校验实现都能通过
  • UUID v7 与 ULID 同批共用毫秒时间戳、随机位逐条递增,整批按字符串排序即生成顺序
  • ULID 用 Crockford Base32(去掉了容易看错的 I、L、O、U)
  • 可切换大写、可去掉连字符(连字符只是排版,不影响取值)

使用方法

  1. 选择类型(v4 / v7 / ULID / NanoID)
  2. 设置数量,最多 1000 条
  3. 按需勾选大写或连字符
  4. 输入框留空即可,直接点「运行」
  5. 点「复制」取走整列结果

常见问题

可以把 UUID 当密码或密钥用吗?
不要这么做。UUID 是标识符,不是保密材料 —— 它天生要出现在 URL、日志、数据库主键和接口参数里,根本无法保密;而 v7、ULID 这类还包含时间戳,能直接推出生成时刻。需要「猜不到」的值时请用密码生成器(长度 16 位以上、字符集尽量大),需要密钥就别自己造,交给专门的密钥管理。
v4 和 v7 该选哪个?
当数据库主键用 v7:时间有序意味着新插入的行总落在索引末尾,写入是顺序的;v4 完全随机,写入会不断打散索引页,数据量上来后写入性能差距明显。反过来,如果不想让外部从 ID 看出记录的创建时间,就该用 v4。已有的系统若只认 UUID 格式、又嫌 v7 太长,可以看 ULID 或 NanoID。
同一批 v7 是排好序的吗?
是。同一次生成里所有 v7 共用一个毫秒时间戳,rand_a 那 12 位当计数器逐条递增,所以复制出来的一列按字符串排序就是生成顺序。两次点「运行」之间不做这个保证 —— 换了一批就是新的一组。
这些 ID 会被上传或记录吗?
不会。随机数来自浏览器内置的 crypto.getRandomValues,生成只在本机内存里进行,页面不发送任何请求,断网也能用。

相关工具