UUID Generator

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand UUID Generator

生成 UUID v4 或 UUID v7 标识符,可以一次生成一个,也可以一次生成至多 100 个。

How it works

UUID 共 128 位,其中六位由版本和变体字段固定,因此 v4 剩下 122 位随机——大约要生成 270 京个之后,碰撞概率才达到 50%。v4 直接来自 crypto.randomUUID,因此随机性即平台的 CSPRNG。v7 把开头的 48 位换成以毫秒计的当前 Unix 时间,其余 74 位填入随机值,这使得 v7 的值作为普通字符串就能按创建顺序排序。

When to use it

  • 创建一个客户端在记录发往数据库之前就能生成的主键。
  • 为请求或链路打上标记,以便在多个服务之间关联。
  • 为上传的文件命名,避免两个用户互相覆盖。
  • 填充需要真实且必然互不相同的标识符的测试夹具。
  • 当插入顺序影响索引健康时,选择 v7。

Watch out for

  • 用 UUID v4 作主键会让 B 树索引产生碎片。每次插入都落在键空间中的随机位置,因此工作集是整个索引,而不只是它的尾部。v7 和 ULID 像自增主键那样追加,从而避开这个问题。
  • UUID 不可猜测,但它不是授权。如果一个对象只要知道 id 就能访问,那么任何拿到该 URL 的人都能访问——请同时检查权限。
  • UUID v7 会公开它的创建时间。时间戳明文摆在值里,因此任何持有该 id 的人都能精确到毫秒地知道记录是何时创建的。若这一点敏感,请使用 v4。
  • 在数据库允许的情况下按 16 字节存储。存成 char(36) 时,一个 UUID 占用的空间超过两倍,而且每次索引比较都要遍历字符串,而不是比较整数。

Not the right tool for: 需要有人读出或输入的短码。36 个字符抄写起来太长——NanoID 或所需长度的随机字符串更合适。

Frequently Asked Questions

UUID v4 和 v7 有什么区别?

UUID v4 是随机生成的,不含时间成分。UUID v7 按时间有序(可按字典序排序),因此更适合作数据库主键,它产生的索引项是顺序递增的。

UUID v4 的唯一性有多强?

UUID v4 有 122 位随机性。生成 10 亿个 UUID 时发生碰撞的概率约为八亿分之一——在实践中基本不可能发生。

应该用 UUID 作数据库主键吗?

UUID v4 会造成数据库索引碎片。UUID v7 或 ULID 是更好的选择,它们按时间有序,插入时落在索引末尾。

How to Use UUID Generator

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.