AZ Tools

UUID 检查器 (版本·变体·时间)

开发

UUID 不只是随机字符串 — 其 128 位编码了版本与变体,基于时间的版本还携带真实时间戳。本检查器解析任意 UUID(标准、花括号或 urn:uuid: 形式)并准确告诉你它是什么:版本号与名称(v1 时间+节点、v2 DCE、v3 基于名称 MD5、v4 随机、v5 基于名称 SHA-1、v6 重排时间、v7 Unix 纪元时间、v8 自定义),以及变体(RFC 4122、旧版 NCS 或 Microsoft)。对 v1、v6 会把自 1582-10-15(格里历改革)以来的 60 位时间戳解码为真实日期,并显示时钟序列与节点,标明该节点是真实的单播 MAC 还是随机的多播地址。对 v7 读取 48 位的 Unix 毫秒时间戳。也能识别 nil 与 max UUID。是回答「这是什么时候创建的?」或「真的是 v4 吗?」的快捷方式。全部在本地运行;不上传任何内容。

标准形017f22e2-79b0-7cc3-98c4-dc0c0c07398f
版本7 — Unix 纪元时间
变体RFC 4122
时间戳 (UTC)2022-02-22T19:22:22.000Z
相对4y 4mo前

v1/v6 携带格里历时间戳;v7 携带 Unix-ms 时间戳;v4 为随机。变体从位读取,而非猜测。

使用方法

  1. 粘贴一个 UUID(带或不带连字符、花括号或 urn:uuid: 前缀均可)。
  2. 查看版本与变体;v1/v6/v7 的创建时间戳会自动解码。
  3. 用复制按钮复制标准形式或时间戳。

常见问题

哪些版本携带时间戳?
v1 与 v6 内嵌自 1582-10-15(格里历改革)以来 100 纳秒间隔的 60 位计数,本工具会转换为普通日期。v7 在起始位内嵌 48 位的 Unix 毫秒时间戳。v3、v4、v5、v8 不携带可解码的时间 — v4 完全随机,v3/v5 是名称的哈希,v8 由实现定义。
版本如何确定?
版本是第 7 字节的高半字节(第三个连字符组的第一个十六进制位)。变体来自第 9 字节的高位:10x 为 RFC 4122,0xx 为旧版 NCS 布局,110x 为 Microsoft GUID 布局。二者均直接从位读取,因此结果精确。
节点/MAC 告诉我什么?
在 v1 或 v6 UUID 中,最后 48 位是节点。经典 v1 使用生成机器的 MAC 地址(隐私问题),而现代库使用设置了多播位的随机值。本工具显示节点并标明该多播位指示的是随机节点还是真实的单播 MAC。
解码出的时间可信吗?
它正是 UUID 中编码的内容,因此只要生成器时钟正确且确为其声称的版本,就可信。伪造或手工编辑的 UUID 可携带任意时间戳,故应将时间视为参考而非证据。

相关工具