生成器

UUID 生成器

在浏览器里生成各个版本的 UUID。随机的 v4,基于时间的 v1,适合排序的 v6、v7,由命名空间和名称派生的 v3、v5,再加上特殊的 NIL 和 MAX,都在同一个面板里完成。可以生成单个,也可以批量生成,能切换大写、去掉连字符或用花括号包裹,每一行都能一键复制。全部在本地计算,任何标识符都不会发送到服务器。

  • 一处覆盖所有版本:v1、v3、v4、v5、v6、v7,以及 NIL 和 MAX 两个特殊值
  • 基于名称的 v3、v5 支持标准的 DNS、URL、OID、X.500 命名空间,也支持自定义
  • 批量生成,逐行点击复制、一键全部复制,并可下载为纯文本
  • 输出格式可切换大写、去连字符和花括号包裹
  • 全部在浏览器本地生成,标识符不会离开你的设备
工具/UUID 生成器
UUID v4

随机生成,含 122 位随机数,是通用场景最常用的版本。

0
还没有 UUID,调整选项即可生成。
快捷操作

功能简介

把所有 UUID 版本集中到一个面板,让你按需求选对类型、按需要的数量生成,并格式化成贴合代码库的样式,不必再去拼脚本或敲命令。

  1. 01

    随机版本:v4、v1、v6、v7

    生成带随机性或时间信息的版本。v4 完全随机,v1 基于时间,v6 和 v7 更适合按生成时间排序,对数据库写入的局部性更好。

  2. 02

    基于名称的版本:v3 与 v5

    从命名空间和名称派生出稳定的 UUID。相同的命名空间和名称始终得到相同结果,适合需要确定性标识符的场景。

  3. 03

    标准命名空间与自定义

    可选用预置的 DNS、URL、OID、X.500 命名空间,也可以粘贴任意合法 UUID 作为自定义命名空间,套用自己的方案。

  4. 04

    单个或批量

    既能生成单个 UUID,也能一次生成多达一千个,并为常用数量提供快捷预设,方便批量准备测试数据。

  5. 05

    输出格式

    可切换为大写、去掉连字符做紧凑存储,或用花括号包裹每个值,贴合注册表风格的标识符。

  6. 06

    复制与导出

    可一键复制单行、复制整批,或把列表下载为纯文本文件,供脚本和测试数据集使用。

如何使用

从选版本到拿到可直接复制的列表只需几步,无论你要一个标识符还是一批测试数据。

  1. 01

    先选 UUID 版本。通用随机 ID 用 v4;想要按创建时间排序的主键就用 v7。

  2. 02

    生成 v3 或 v5 时,选一个命名空间并输入名称,或粘贴你自己的自定义命名空间 UUID。

  3. 03

    生成随机版本时,设置需要的数量,或点一个数量预设快速批量生成。

  4. 04

    按需调整格式:大写、去连字符或用花括号包裹。

  5. 05

    复制单行、复制整批,或下载为文本文件,供脚本和测试使用。

功能说明

UUID 出现在数据库、消息队列、分布式系统和测试数据集中,不同场景需要不同的版本和格式。

  • 覆盖完整的 UUID 家族:v1、v3、v4、v5、v6、v7,以及 NIL 和 MAX 两个特殊值
  • 基于名称的 v3、v5 接受标准的 DNS、URL、OID、X.500 命名空间或任意自定义 UUID
  • v7 生成按时间大致有序的主键,让 B 树数据库索引保持较高的写入局部性
  • v6 对 v1 字段重排,让较早的标识符排在较新之前,同时保留时间戳信息
  • 批量生成一次可产出多达一千个值,用于填充数据库和压力测试
  • 逐行复制、全部复制和文本下载,兼顾一次性需求和批量测试数据
  • 大写、去连字符和花括号包裹格式,分别贴合不同的存储和平台约定
  • 非法的自定义命名空间会在生成前被拦下,确保 v3、v5 始终产出合法结果
  • 这里的基于时间版本使用随机节点标识,不会暴露真实硬件地址;基于名称的版本按标准哈希生成
  • 全部生成都在浏览器内完成,内部系统的标识符不会上传到任何服务器

适合哪些场景

选哪个 UUID 版本,一半是设计取舍,一半是约定,而同一个工具要同时服务数据库主键、确定性标识和快速测试数据。

  1. 主键与数据库行

    随机的 v4 主键能在多个服务间避免冲突;v7 则让新行在索引里彼此靠近,写入和范围扫描更快。

  2. 可排序的时间有序标识

    当记录需要按创建顺序大致排列时,v7 和 v6 带有时间信息,让标识符保持较好的时间局部性;精确排序仍应保留时间列。

  3. 从内容派生的确定性 ID

    v5 能把命名空间和一个稳定的名称(比如 URL 或文件路径)每次都转成相同的 UUID,适合幂等导入和缓存。

  4. 关联与追踪 ID

    为每个请求或消息分配一个 v4 UUID,让日志、队列和链路追踪有唯一句柄,跨服务跟踪同一份工作。

  5. 测试数据与夹具

    批量生成可为数据库、模拟接口和快照测试填充逼真的标识符,无需手写生成脚本。

  6. API 资源与幂等键

    客户端可在请求上带一个 UUID,让重试只被处理一次;资源也能获得稳定、可安全对外暴露的公开标识。

  7. 文件名与对象存储键

    去连字符的 UUID 是紧凑且抗冲突的名称,适合用作上传、导出和共享存储上的对象键,避免命名撞车。

  8. 占位与重置值

    NIL UUID 是清晰的空值,适合可选外键和默认列;MAX 则可作为范围判断里的上界。

延伸阅读

如果你还需要更短的随机串、纯数字 ID 或带前缀的键,而不是完整的 UUID,更通用的 ID 生成器 覆盖了这些格式。如果想推导或核对基于名称的 UUID 背后的哈希,可以用 哈希生成器 ,从同类输入计算 MD5、SHA-1 和 SHA-256。

使用建议

UUID 很容易生成,但选对版本、用对方式,才能让系统保持高效、可控,又不泄露信息。

  • 通用标识符默认用 v4;当主键需要按创建时间排序时再选 v7。
  • 高写入量的数据库主键优先用 v7 而非 v4,按时间大致有序能让索引写入保持局部性,减少碎片。
  • 新的基于名称的标识优先用 v5 而非 v3,因为规范更推荐 SHA-1 而非 MD5。
  • 把 UUID 当作标识符而非机密,不要用作会话令牌、密码重置等需要不可猜测的用途。
  • 数据库支持时用原生 UUID 或二进制列存储,而不是 36 个字符的字符串,以节省空间、加快比较。
  • 存储中保持一种规范格式,通常是小写带连字符,只在确实需要的边界处再转成大写或去连字符。
  • 记住 v1、v6 内嵌时间戳,v3、v5 由输入派生,因此它们本质上既不随机也不私密。
  • 对确定性的 v3、v5,记录确切的命名空间和名称,以便日后复现同一个标识符。

边界与注意事项

UUID 解决的是标识问题而非安全问题,不同版本的保证差别很大,了解它们承诺什么、不承诺什么很重要。

  • UUID 不是机密。v1、v6 暴露时间戳,v3、v5 可由输入复现,因此都不应用来控制访问权限。
  • 随机和基于时间的版本几乎必然唯一,但并非数学上绝对唯一,因此唯一约束仍应放在数据库里。
  • 这里的基于时间版本使用随机节点而非真实网络地址,无法用于识别某台物理机器。
  • 基于名称的 v3、v5 是确定性的,用相同命名空间和名称生成多个,只会重复同一个值。
  • 本工具负责生成并格式化 UUID,不解析、不校验、也不解码你粘贴进来的 UUID。
  • 可排序的 v6、v7 大致按时间排序,但当需要精确顺序时,它们不能替代专门的时间戳列。
  • 不同平台期望的格式不同,存储前请确认目标需要小写、大写、连字符还是花括号。

常见问题

关于跨版本生成 UUID 的常见问题,涵盖该选哪个版本、基于名称的值如何工作、格式,以及 UUID 能保证和不能保证什么。

我该用哪个 UUID 版本?

通用随机标识用 v4;想要按创建时间排序的数据库主键用 v7;需要相同输入每次都得到相同标识时用 v5。

v4 和 v7 有什么区别?

v4 完全随机、没有顺序。v7 把 Unix 时间戳放在高位、随机位放在其余部分,因此大致按创建时间排序,对数据库索引局部性更好。

基于名称的 v3、v5 如何工作?

它们把命名空间 UUID 和名称一起做哈希,v3 用 MD5,v5 用 SHA-1。相同的命名空间和名称始终得到相同的 UUID,因此结果是确定的。

什么时候用 v3 而不是 v5?

新项目优先用 v5,因为规范更推荐 SHA-1 而非 MD5。v3 主要用于和已经在生成 v3 的现有系统保持兼容。

这些 UUID 适合当作机密令牌吗?

不适合。UUID 是标识符而非机密。v1、v6 暴露时间戳,v3、v5 可由输入复现。需要不可猜测的令牌请改用专门的随机密钥。

v1、v6 会泄露我的 MAC 地址吗?

不会。这里的基于时间版本使用随机生成的节点标识,而非真实硬件地址,因此不会泄露你机器的信息。

两个生成的 UUID 会不会冲突?

随机和基于时间的版本发生冲突的概率极低,但并非数学上不可能,因此关键主键仍应在数据库里保留唯一约束。

NIL 和 MAX UUID 有什么用?

NIL 全为零,可作为明确的空值或占位值。MAX 全为一,由 RFC 9562 定义,适合在比较和范围判断中作为上界。

UUID 存储时该带还是不带连字符?

存储中保持一种规范格式,通常是小写带连字符。只在文件名或要求特定格式的平台等边界,才使用去连字符或大写的变体。

我生成的 UUID 会被发送到别处吗?

不会。每个值都在浏览器本地生成,内部系统的标识符和测试数据都不会离开你的设备。

更多相关工具

UUID 只是众多标识符中的一种。需要更短或自定义格式时配合更通用的 ID 生成器,想查看基于名称 UUID 背后的摘要时配合哈希工具一起使用。