关于 UUID 生成器
UUID 是 128 位全局唯一标识符,形如 f47ac10b-58cc-4372-a567-0e02b2c3d479。本工具调用浏览器原生 crypto.randomUUID() 生成符合 RFC 4122 的 v4 随机 UUID,也按 RFC 9562 在本地生成可排序的 UUID v7,便于按时间就近排序。典型用途包括数据库主键、分布式系统去重 ID、日志追踪号与临时文件名。例如一次可生成 10 个 v4 随机 UUID,结果形如 f47ac10b-58cc-4372-a567-0e02b2c3d479,直接作为数据表主键或消息 ID 使用。需要按时间排序的场景优先选 v7,纯随机标识用 v4 即可;生成结果可批量复制,直接作为数据表主键、日志追踪号或临时文件名使用。
使用方法
- 打开 UUID 生成器页面
- 选择需要生成的 UUID 数量(1-1000 个)
- 点击「生成」按钮或选择大写/小写、是否带连字符等选项
- 点击 UUID 旁边的复制按钮或「复制全部」一键复制所有结果
使用场景
- 数据库主键 — 替代自增 ID,适合分布式系统避免主键冲突,支持离线生成、合并写入。
- API 请求 ID — 为每个 HTTP 请求打上唯一标记,便于日志追踪和分布式链路关联。
- 前端临时 key — Vue/React 列表渲染时为没有稳定 ID 的临时项分配 key,避免重渲染问题。
- 文件命名 — 批量上传或缓存时避免重名覆盖,文件名带 UUID 几乎不会冲突。
- 会话 token — 配合签名生成不可猜测的 session ID 或一次性令牌。
常见问题
UUID v4 会不会重复?
理论上会,但概率极低。UUID v4 由 122 位随机数构成,生成 100 亿个 UUID 出现一次碰撞的概率约为 50%——在工程上可视为永不冲突。
UUID 和 GUID 是同一个东西吗?
是。GUID 是微软对 UUID 的别名,二者格式完全一致,可互换使用。
为什么我的 UUID 总是以 4 开头?
第 13 位字符标识 UUID 版本,v4 固定为 4。如果需要可按时间排序的 UUID,可考虑使用本站的「ULID 生成器」。
UUID 安全吗?可以用作密钥吗?
v4 本身不是为加密设计的,但 122 位熵值已远超普通 token。如果需要更高安全等级,推荐使用本站的「令牌生成器」。
为什么不上传到服务端就能生成?
浏览器原生提供 crypto.getRandomValues() API,这是经过密码学评审的安全随机源,质量与服务端 /dev/urandom 等价。
UUID v4 和 v7 该怎么选?
纯随机、不希望泄露生成时间或对库兼容性有顾虑时选 v4;需要按时间排序、想让新记录自然排在索引末尾以减少随机主键的页分裂时选 v7。v7 前 48 位是毫秒时间戳,可以反推出生成时间,v4 则没有这个信息。作为数据库主键的高并发写入场景,v7 近似顺序写能提升 InnoDB 等 B+Tree 索引的局部性,所以多数新项目更倾向 v7;两者的标准显示格式保持一致。
去掉连字符的 UUID 还合法吗?
合法。UUID 本质是 128 位十六进制数据,连字符只是约定俗成的排版格式。去掉后是 32 个十六进制字符,仍是同一个 ID,很多数据库用 BINARY(16) 这类紧凑形式存储。只要生成和存储两端格式一致就没有问题;如果某 API 或库要求标准格式,再按 8-4-4-4-12 补回连字符即可。切勿在某一层手动去除、又在另一层原样拼接,避免被当成不同的值处理。