UUID / ULID 解码器
即时解析和解码 UUID 与 ULID
解码结果
UUID 版本快速参考
把任意 UUID 或 ULID 粘贴进来,这个解码器会立刻把它拆开看:版本、变体、内嵌的时间戳、节点(MAC)地址和时钟序列,只要里面带了这些信息就能解析出来。适合开发者在排查数据库主键、追溯某个 ID 的生成时间,或者验证自己用的 UUID 库有没有按预期工作时使用。
如何使用
- 粘贴标识符: 把 UUID(形如
550e8400-e29b-41d4-a716-446655440000)或 26 位 ULID 粘贴到输入框 - 查看解析结果: 工具会先校验格式,然后识别版本和变体,并把标识符里携带的每个字段都拆出来
- 查看时间戳: 对于 v1、v7 和 ULID,内嵌的生成时间会直接显示成可读的日期
功能特性
- 自动识别 UUID 版本(v1 到 v8)
- 变体识别:RFC 4122/DCE、微软 GUID、NCS 或保留类型
- 提取 v1、v7 和 ULID 中内嵌的时间戳
- 解析 v1 的节点 MAC 地址和时钟序列
- 完整支持 ULID 的 Crockford Base32 解码
- 纯浏览器本地运行,标识符不会被上传
UUID 到底是什么?
UUID 本质上是一个 128 位的数字,习惯上写成 32 个十六进制字符,按 8-4-4-4-12 分成五段用连字符隔开。RFC 4122 定义的可能取值有 2 的 122 次方个,随机生成时撞车的概率小到可以忽略——大约要每秒生成十亿个、连续生成 85 年,重复的可能性才值得一提。正因为如此,UUID 几乎无处不在:数据库主键、分布式事务 ID、文件名、会话令牌都能见到它。
这串字符里有两个位置藏着元信息。第三段的第一个字符是版本号——这里是 4 就是随机生成,是 1 就是基于时间。第四段的高位标记变体,告诉解析程序这个值遵循 RFC 4122 标准,而不是某种老的或厂商私有的格式。
为什么版本很重要?
v4 是纯随机数,除了类型之外没什么可解码的。v1 内嵌了一个 60 位时间戳,以 100 纳秒为单位从 1582 年 10 月 15 日(公历改革的起点)开始计数,还带有生成机器的 MAC 地址——排查问题时方便,但也意味着会把硬件信息泄露到公开接口里,是出名的隐私隐患。v7 是近几年的新宠:它把 Unix 毫秒时间戳放在最前面,天然按生成时间排序,做数据库主键时不会把索引打得支离破碎。ULID 用更短、URL 安全的字符串实现了同样的可排序性。
使用场景
- 调试排查: 确认 UUID 库生成的确实是预期的 v4,而不是 v1
- 数据追溯: 从 v1 或 v7 主键反推记录的创建时间
- 安全审查: 检查公开 API 是否在用泄露 MAC 地址的 v1 UUID
- 数据迁移: 导入历史数据前批量校验标识符格式
相关工具
常见问题
什么是 UUID 版本?
UUID 版本表示这个 UUID 是怎么生成的。版本 1 基于时间戳和 MAC 地址,版本 3 用 MD5 哈希,版本 4 是随机数,版本 5 用 SHA-1 哈希,版本 7 是 Unix 时间戳加随机位。不同版本在唯一性、可排序性和携带信息量上各有特点。
如何从 UUID 里解析出时间?
只有 v1 和 v7 的 UUID 内嵌了时间戳。把 UUID 粘贴进输入框,如果是 v1 或 v7,工具会自动提取时间并显示成可读的日期。v1 的时间换算起点是 1582 年 10 月 15 日,工具会自动处理到标准 Unix 时间的转换。
UUID 和 ULID 有什么区别?
UUID 是一个 128 位的值,通常写成 36 个带连字符的字符。ULID 同样是 128 位,但用 Crockford Base32 编码成 26 个字符。ULID 天生可以按生成时间排序,更短、更适合放在 URL 里。