UUID 生成与校验

生成 v1、v3、v4、v5、v6、v7 UUID,支持命名空间、批量、格式转换、校验和时间分析。

生成设置

UUID 版本
输出格式
命名空间

v3/v5 使用相同命名空间与名称时,每次都会得到相同的 UUID。

生成结果

选择版本并生成后,各版本结果将在这里显示。

UUID 介绍

各版本的区别

v1 时间与节点

包含 100ns 时间戳、时钟序列和节点值,便于按生成时间追溯,但会暴露生成时间。

v3 名称型(MD5)

由命名空间和名称确定性生成;适合兼容旧系统,不应用于需要抗碰撞安全性的场景。

v4 随机

122 位随机数据,最通用的默认选择;不含业务语义或生成时间,不能自然按时间排序。

v5 名称型(SHA-1)

与 v3 一样可复现,但使用 SHA-1 摘要;适合需要跨系统稳定映射名称的场景。

v6 可排序时间型

重排 v1 的时间字段,使高位先按时间增长;兼容时间型语义,同时更适合索引排序。

v7 Unix 时间型

高位为 Unix 毫秒时间,剩余部分随机;兼顾时间排序与现代实现,适合新的可排序标识。

本工具未提供遗留的 DCE Security v2。UUID 不应代替密码、访问令牌或授权凭据。

命名空间与名称的作用

v3 和 v5 不是随机 UUID:它们将一个命名空间 UUID 与名称文本作为固定输入。标准 DNS、URL、OID 和 X.500 命名空间用于隔离不同名称域;也可以使用自己的规范 UUID 作为命名空间。

  • 相同的版本、命名空间和名称始终得到相同 UUID,适合稳定映射和去重。
  • 改动名称或命名空间会得到不同 UUID;名称应是稳定且能区分实体的文本。
  • 名称型 UUID 是标识映射,不是加密或保密方案;不要把密钥、令牌或敏感内容用作名称。

常用语言 API 的默认类型

以下为常用 API 或主流库的典型默认结果,不代表语言标准;库版本和项目封装可能另有选择。

语言 / 平台常用 API典型默认版本
浏览器 / Node.jscrypto.randomUUID()v4
JavaUUID.randomUUID()v4
Pythonuuid.uuid4()v4
.NETGuid.NewGuid()通常 v4
Gogoogle/uuid.New()v4
RustUuid::new_v4()v4
RubySecureRandom.uuidv4
LaravelStr::uuid()v4

输入与输出示例

v5 · DNS namespace · www.example.com2ed6657d-e927-568b-95e1-2665a8aea6a2

如何使用

  1. 默认选择全部 UUID 版本;按需保留版本并设置输出格式。名称型版本选择标准命名空间并填写名称。
  2. 设置生成数量并点击生成 UUID,按需复制或下载。
  3. 在下方校验卡片中粘贴 UUID,查看规范形式、版本、变体与可用时间戳。

能力与限制

  • 浏览器本地处理
  • 单次最多生成 1000 项;名称最多 4 KiB。v3/v5 的相同 namespace 与名称始终生成相同 UUID。
  • v1 使用随机节点,不读取硬件 MAC;v1/v6/v7 包含时间信息。
  • UUID 不是密码或访问令牌;校验格式不证明该标识已注册或存在。

常见问题

应该选择 v4 还是 v7?
v4 使用随机数据,适合通用标识;v7 包含 Unix 毫秒时间并利于时间排序,但会暴露生成时间。

相关指南

UUID v1/v3/v4/v5/v6/v7 生成与校验:原理与边界 ↗

相关工具

更新于 2026-10-11 · 项目与反馈说明