UUID 生成器指南:v4、v7、命名空间与 GUID 格式
ToolMellow ·
UUID 是采用指定版本和变体约定的 128 位标识符。ToolMellow 生成 v1、v3、v4、v5、v6、v7,以及固定 Nil 和 Max 值。选择“UUID 版本”和“UUID 格式”,设置数量或名称列表,再点击“生成 UUID”。生成在本地浏览器工作线程中运行。
不同版本满足不同需求:随机标识符、以时间为依据的标识符,或可重复的命名空间与名称标识符。本指南解释实际选项和限制。UUID 不会自动成为授权令牌、密码、经过全球查重的唯一值或真实事件时间证明。以下示例是固定说明,不是新分配的生产标识符。
如何生成一个或一批 UUID
打开 UUID 生成器,选择“UUID 版本”和“UUID 格式”,按需开启“UUID 大写”或“输出为 JSON 数组”。默认版本为 v4。随机、时间、Nil 和 Max 方式用整数“数量”设置 1 到 1,000 个;v3、v5 则输入名称并选择命名空间,数量不控制名称输出。
点击“生成 UUID”,复制或下载前检查版本、表示形式及结果值。修改输入或选项会使旧结果失效。“自动换行”只影响显示。UUID 没有“将结果用作输入”操作;其他应用需要时请手动复制。
- 按应用要求选择版本,不要只因另一个输出看起来更合适而切换。
- 需要可重复性时,记录命名空间和名称表示规则。
- 时间标识符要保留格式和时钟条件,不要把 UUID 当认证决策。
选择 v1、v3、v4、v5、v6 或 v7
RFC 9562 是当前 UUID 标准,取代 RFC 4122。ToolMellow 提供下表的六种版本及两个特殊常量,不生成版本 2 或自定义版本 8 布局。改变文本格式不会改变版本或底层标识符位。
版本说明构造方法,不保证全球唯一、保密或兼容所有接收系统。数据库或协议可能有自己的版本和表示要求。本页面生成标识符,不查询注册表,不连接数据库,也不测试索引性能。
| 方式 | 本工具中的构造 | 适用边界 |
|---|---|---|
| v4 | 密码学随机性 | 随机标识符,不是时间戳或自动秘密令牌系统 |
| v7 | Unix 时间字段与库计数、随机字段 | 时间型,顺序受时钟和工作线程范围限制 |
| v1 | 公历时间戳、时钟序列和随机节点字段 | 透露时间;本实现不读取设备 MAC |
| v6 | 重排公历时间戳及随机节点、序列字段 | 时间字段的位置比 v1 更靠前;仍需考虑存储规则 |
| v5 | 命名空间与准确 UTF-8 名称,使用 SHA-1 | 确定性,不是带密钥认证 |
| v3 | 命名空间与准确 UTF-8 名称,使用 MD5 | 传统确定性构造,不是密码存储 |
| Nil | 固定全零 UUID | 重复常量,不是新唯一分配 |
| Max | 固定全一 UUID | 重复常量,不是新唯一分配 |
UUID 布局、版本、变体和 GUID 术语
标准文本 UUID 有 32 个十六进制字符和四个连字符,分组为 8-4-4-4-12,共 36 个字符。这里普通版本的第三组第一个十六进制字符标示版本。变体位影响第四组开头,通常为 8、9、a 或 b。Nil 与 Max 是特殊值,不是生成普通 v0 或 v15 的请求。
GUID 常用于称呼 UUID 风格标识符。“花括号 · GUID”选项只在文本外加花括号,不输出 Windows 二进制结构或改变字节顺序。大写仅改变十六进制字母表示。语法看似合理的字符串不能证明生成者身份或授权访问。
UUID v4:随机标识符与碰撞限制
普通 v4 保留版本和变体位,其余 122 位使用随机性。本工具的随机与时间生成路径要求密码学随机值支持。库在可用时可用原生 crypto.randomUUID 生成 v4,否则使用密码学随机值实现,没有 Math.random 备用方案。
在适当假设下,随机生成使意外碰撞概率低,但不保证每个标识符全球未使用。工具不做外部查重。如果应用必须唯一,应采用其实际分配和存储规则,不要把一个浏览器生成值当成全球预留。
RFC 9562:通用唯一标识符、布局、命名空间和示例uuid.js 14.0.2:UUID 生成 API 与状态处理W3C Web Cryptography API:密码学随机值
时间字段、设备时钟与批内顺序
v1 与 v6 的公历时间戳布局以 100 纳秒为单位,v6 重排时间字段。本浏览器实现以毫秒设备时钟为基础,因此字段单位不证明 100 纳秒测量精度。v7 开头为 Unix 毫秒,结合库管理的序列、计数器及随机字段;本实现的剩余位并不全部独立随机。
工作线程中的库在生成任务内管理时钟和计数状态,包括 v7 对相同或回退时钟的处理。每次运行使用新工作线程,状态不跨点击、标签页或设备共享。解出的时间可能反映库时钟处理,不是权威现实时间。不保证跨批或分布式单调顺序,超出支持范围的设备时钟会被拒绝。
RFC 9562:通用唯一标识符、布局、命名空间和示例uuid.js 14.0.2:UUID 生成 API 与状态处理WHATWG HTML:工作线程与生命周期
UUID 可能透露哪些时间和身份信息
v1、v6、v7 透露时间相关信息。本工具的 v1、v6 用随机节点字段,不读取网卡 MAC 地址。这区别于可能使用其他节点来源的实现,但不让时间标识符匿名。
v4 没有定义的创建时间字段;v3、v5 可因重复命名空间、名称或候选猜测透露关系。这些值都不会自动证明身份、保密性或所有权。不要把敏感真实姓名放进共享示例,应用授权应独立于标识符格式设计。
名称型 v3/v5:字面行与可重复性
v3、v5 名称编辑器把每个 CRLF、CR 或 LF 分隔的行视为一个名称。保留空行、末尾空名称、空格、大小写和重复行。因此空编辑器生成一个空名称的 UUID,不是零项批次。数量不控制这些方式;上限为 1,000 个名称行和 1,000,000 个 UTF-16 输入单元。
相同版本、命名空间和准确 UTF-8 名称生成同一 UUID。工具拒绝未配对代理项,不规范化 Unicode,也不去除名称空格。看似相同的规范化形式或结尾空格可改变字节输入。这里 MD5 与 SHA-1 用于标准名称型 UUID 构造,不是密码哈希、加密或带密钥认证。
RFC 9562:通用唯一标识符、布局、命名空间和示例WHATWG Encoding:UTF-8 与文本解码ECMAScript:String isWellFormeduuid.js 14.0.2:UUID 生成 API 与状态处理
DNS、URL、OID、X.500 与自定义命名空间
“命名空间”选择与每个名称配合的 UUID 值。默认 DNS;URL、OID 和 X.500 提供下表其他预定义常量。预设标签不会做 DNS 解析、请求 URL、规范化域名、验证 OID 或解析 X.500 可分辨名称。工具把字面 UTF-8 名称文本传给所选构造;应用需要额外表示规则时应自行遵循。
“自定义 UUID”要求有效的标准带连字符命名空间 UUID。接受大写十六进制,库验证也接受 Nil 与 Max。命名空间字段不接受紧凑、花括号或 URN 形式。“清空”重置自定义命名空间为默认 DNS,不改变先前下载的值。
| 预设 | 命名空间 UUID |
|---|---|
| DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 |
| URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 |
| OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 |
| X.500 | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 |
已知 DNS 命名空间示例
使用 DNS 命名空间和准确名称 www.example.com 时,下表标准小写值复现 RFC 名称型示例。选择 DNS 不会触发网络查询。本工具不默默将大写域名字符串转为小写;它是另一个字面输入。
先用固定示例确认版本和命名空间,再排查实际命名约定。v3/v5 重复行产生重复值。确定性结果适用于约定的输入规则,但不是所有用途的抗碰撞证明,也不是名称所有权证书。
| 版本 | 准确名称 | 标准输出 |
|---|---|---|
| v3 | www.example.com | 5df41881-3aed-3515-88a7-2f4a814cf09e |
| v5 | www.example.com | 2ed6657d-e927-568b-95e1-2665a8aea6a2 |
标准、紧凑、花括号、URN 和 JSON 输出
格式只改变表示,不改变 UUID 位。表中以一个固定 v5 值示范四种格式。“UUID 大写”改变十六进制字母,URN 前缀仍为 urn:uuid:。确认接收系统允许所选写法;格式工具不做二进制 GUID 序列化或数据库转换。
“输出为 JSON 数组”生成按所选格式写出的缩进字符串数组;否则各值由换行分隔。选择 JSON 时下载 toolmellow-result.json,否则为 toolmellow-result.txt,都是 UTF-8 文本。选项变化使旧结果失效,选择格式后需重新生成。
| 格式 | 单个值字符数 | 示例 |
|---|---|---|
| 标准 | 36 | 2ed6657d-e927-568b-95e1-2665a8aea6a2 |
| 紧凑 | 32 | 2ed6657de927568b95e12665a8aea6a2 |
| 花括号 · GUID | 38 | {2ed6657d-e927-568b-95e1-2665a8aea6a2} |
| URN | 45 | urn:uuid:2ed6657d-e927-568b-95e1-2665a8aea6a2 |
Nil、Max,以及验证不能证明什么
Nil 是 00000000-0000-0000-0000-000000000000,Max 是 ffffffff-ffff-ffff-ffff-ffffffffffff,都是固定特殊值。任一种数量选二会得到同一常量两次,不是两个新唯一值。不要与随机值或普通版本混淆。
有效 UUID 语法或版本、变体匹配,不证明它尚未分配、保密、由授权者发布或适合作账户权限凭据。名称型值可由输入预测,时间型值透露时间。本工具没有唯一性注册表、登录令牌生命周期、数字签名或 UUID 认证服务。
限制、浏览器能力与排查
随机、时间、Nil、Max 方式的数量须为 1 到 1,000 的整数。名称方式另限行数,总输入上限是一百万 UTF-16 单元。加载本地文本文件拒绝大于或等于 4,000,000 字节的文件及超限文本。File.text() 去掉开头 UTF-8 BOM 并替换畸形 UTF-8,浏览器编辑还可能影响行尾;导入不是保留原始字节的名称来源。
随机和时间方式需要 crypto.getRandomValues。原生 randomUUID 要求安全上下文,但库可在没有它时用密码学随机值;名称型及固定方式不需要随机值,也不需要 crypto.subtle。不要把 SHA 文本工具的统一能力提示套用到所有 UUID 方式。工作线程、浏览器和平台限制仍可能阻止生成。
| 现象 | 下一步检查 |
|---|---|
| 命名空间无效 | 自定义字段使用有效的 36 字符带连字符 UUID |
| v3/v5 意外重复 | 检查重复、空名称及完全相同的命名空间和名称 |
| 名称输出数量不对 | 每行一个名称,末尾换行增加一个空名称 |
| 随机值或设备时钟错误 | 检查必要能力或实际设备时钟 |
| 导入后结果意外 | 检查 BOM 移除、UTF-8 替换、行分隔与名称字节 |
W3C Web Cryptography API:密码学随机值uuid.js 14.0.2:UUID 生成 API 与状态处理W3C File API:读取 Blob 文本WHATWG Encoding:UTF-8 与文本解码WHATWG HTML:工作线程与生命周期
清空、本地生成与网站请求
“清空”移除名称、输入、结果、错误和编辑器历史,将自定义命名空间重置为 DNS。保留版本、数量、格式、大写、JSON 和自动换行选择。刷新或关闭丢弃内存中的输入与结果。下载文件仍在设备上,“清空”不保证彻底消除浏览器或系统内存中的可恢复痕迹。
生成不会把名称、所选文件内容或 UUID 上传给生成服务器或分配注册表。加载网站仍向主机发送常规元数据,公开站点用 Google Analytics 统计访问,包括 Cookie 和浏览器、设备信息。本地生成不表示匿名、零网络请求或基础设施零日志。
嵌入 UUID 生成器并保留反向链接
选择页面语言,在工作区下方集成部分复制或下载 HTML 代码,粘贴到允许外部 iframe 与尺寸脚本的平台。代码包含对应语言 ToolMellow UUID 页面的可见反向链接,请保留署名链接。
在窄屏预览,检查所选方式的剪贴板与工作线程支持。嵌入版保留相同版本、限制和本地状态范围,不成为远程标识符 API 或共享查重服务。链接用 nofollow 与 noopener,不保证提高排名。
常见问题
如何生成 UUID?
选择版本和格式;随机、时间及固定方式设置数量,v3/v5 设置命名空间和名称行,再点击“生成 UUID”。复制或下载文本或 JSON。默认 v4。
UUID v4 和 v7 有什么区别?
v4 用密码学随机性与版本、变体位。v7 含 Unix 毫秒和库计数、随机字段,属于时间型,但不保证权威时间或跨运行、标签页、设备顺序。
UUID 一定唯一吗?
不提供全球保证或外部分配查重。在适当假设下随机碰撞概率低。名称重复会重现,Nil/Max 是常量。需要时执行应用自己的唯一性规则。
为什么 UUID v5 重复相同值?
相同版本、命名空间和准确 UTF-8 名称重现同一 UUID。空或重复名称保留为独立行,可能重复值,不会给每次重复名称另选随机标识符。
数量控制 UUID v3 或 v5 批次吗?
不控制。每个 CRLF、CR 或 LF 分隔的行是名称,包括空行和末尾空行。名称批次最多 1,000 行及一百万 UTF-16 输入单元。
DNS 和 URL 命名空间做什么?
它们为字面名称字节选择预设命名空间 UUID,不查询 DNS,不请求 URL,不规范化域名大小写,也不验证完整地址。遵循应用的命名约定。
这里的 UUID v1 泄露 MAC 地址吗?
本实现的 v1/v6 用随机节点字段,绝不读取设备 MAC。它们仍透露时间。其他实现可能采用不同节点来源,这不是匿名保证。
UUID v7 保证按时间有序吗?
库在生成工作线程内处理时钟和计数状态。每次运行用新线程,不保证分布式或跨批顺序。时钟错误或回退处理可能影响时间信息。
UUID 与 GUID 格式有何区别?
GUID 是常见相关术语。本工具花括号只包裹文本 UUID。标准、紧凑、花括号和 URN 表示同一位值,不转换为 Windows 二进制布局。
Nil 和 Max 是新唯一值吗?
不是。Nil 全零,Max 全一,固定特殊值生成多个时重复,不是普通 v0/v15 随机生成方式。
UUID 总需要 HTTPS 和 Web Crypto 哈希吗?
不总需要。随机、时间方式要密码学随机值;没有原生 randomUUID 时 v4 可用库备用路径。v3/v5 用库名称哈希,Nil/Max 是常量,它们不都需要 crypto.subtle 或同一能力路径。
UUID 能直接用作密码或秘密令牌吗?
语法不证明保密、授权或完整令牌生命周期。名称、时间、固定方式有可预测或暴露结构。应为实际应用设计认证与存储,不把所有 UUID 当秘密。
清空重置什么?
清空输入、输出、错误和历史,自定义命名空间回到 DNS。保留版本、数量、格式、大写、JSON 和自动换行。已下载文件仍在设备上。
能在网站嵌入 UUID 生成器吗?
使用工作区下方本地化 HTML 代码,保留可见 ToolMellow 反向链接,确认 iframe、脚本、剪贴板、工作线程支持。嵌入版同方式同限制,不是远程分配或查重 API。