UUID 生成器(v4、v7、v1)
批量生成符合 RFC 9562 的 UUID:随机 v4、按时间排序的 v7、时间戳 v1,以及 Nil 和 Max。可选大写、大括号或去掉连字符,使用 crypto.getRandomValues。
最多 1000
122 位随机数来自 crypto.getRandomValues,碰撞概率可以忽略不计。
什么是 UUID 生成器?
UUID(通用唯一标识符)是一个 128 位的 ID,写成 32 个十六进制数字,格式为 8-4-4-4-12。这个工具遵循 RFC 9562,一次最多可生成 1,000 个 版本 4(随机)、版本 7(按时间排序)、版本 1(时间戳)的 UUID,或特殊的 Nil 和 Max 值。
如何使用 UUID 生成器
- 选择 版本(通常选版本 4;数据库主键用版本 7)。
- 设置需要的 数量。
- 按需勾选 大写、取消勾选 连字符,或勾选 用大括号 { } 包裹。
- 点击 重新生成 获取新一批,然后复制或下载列表。
示例
Version 7, How many 2
01a16811-eb97-7688-838a-aa989505507e 01a16811-eb97-7689-a2db-f00f7ac48f06
两者的毫秒时间戳开头相同;计数器使第二个排在第一个之后。你的值会不同。
何时使用 UUID 生成器
通用的唯一 ID(API 资源、文件名、关联 ID)请使用 v4。数据库主键请使用 v7,因为按时间排序的值能让 B 树索引更紧凑。除非某个系统要求,否则避免使用 v1,并且绝不要把 UUID 当作密钥或访问令牌:它们是唯一的,但不是保密的。
UUID 生成器 的工作原理
v4:来自 crypto.getRandomValues 的 16 个随机字节;版本半字节设为 4,两个变体位设为 10,剩下 122 位随机数。v7:前 48 位是以毫秒计的当前 Unix 时间(大端序),其后是版本号、12 位计数器(因此同一毫秒内生成的 UUID 仍能按顺序排序)和 62 位随机数。v1:自 1582 年 10 月 15 日起以 100 纳秒为单位的 60 位计数、14 位时钟序列和 48 位节点 ID;工具使用设置了组播位的随机节点(RFC 9562 允许),而不是你的 MAC 地址。v1/v7 中嵌入的时间戳会被解码并显示在列表下方。
常见用例
- 为数据库行或测试夹具创建主键
- 为日志生成请求 ID 或关联 ID
- 给上传的文件命名并避免冲突
- 用唯一标识符填充模拟数据
常见问题
两个 UUID v4 会冲突吗?
理论上会,实际上不会:有 122 位随机数,要生成约 2.7 × 10^18 个 UUID,才有 50% 的概率出现一个重复。
UUID v4 和 v7 有什么区别?
v4 完全随机。v7 以时间戳开头,因此后生成的值排在先生成的值之后,这对数据库索引更有利,也能读出创建时间。
UUID 和 GUID 一样吗?
一样。GUID 是微软对同一种 128 位格式的称呼。需要注册表大括号等 Windows 专用格式时,请使用 GUID 生成器。
v1 会泄露我的 MAC 地址吗?
这里不会。节点字段由随机字节填充,并设置了组播位以表示它不是硬件地址。