UUID v1 生成器 - 在线创建基于时间戳的 UUID

在线生成基于时间戳的 UUID 版本 1。创建包含当前时间和 MAC 地址以确保唯一性的 UUID。

尝试这些示例:

什么是 UUID v1?

UUID 版本 1 是一种基于时间的 128 位标识符(36 字符字符串),定义于 RFC 4122。它组合了:

  • 时间戳:60 位值(自 1582-10-15 起以 100 纳秒为单位)
  • 时钟序列:14 位计数器,用于调整时钟回拨
  • 节点 ID:48 位值(通常是 MAC 地址)

格式示例2ed6657d-e927-11eb-9a03-0242ac130003

UUID v1 如何工作

  1. 计算当前时间戳(自 1582-10-15 起以 100 纳秒为间隔)
  2. 获取/递增 14 位时钟序列(在时钟回拨时保证唯一性)
  3. 获取 48 位节点 ID(通常来自 MAC 地址)
  4. 设置版本位(0001)和变体位(10)
  5. 组装成 32 个十六进制数字并加连字符:8-4-4-4-12 格式

优点与注意事项

优点注意事项
  • 按时间排序(可排序)
  • 高性能生成
  • 分布式生成
  • 嵌入创建时间
  • MAC 地址隐私问题
  • 时钟同步问题
  • 比随机 UUID 更可预测
  • 不具备加密安全性

UUID v1 结构

内容
0-31时间戳的低 32 位
32-47时间戳的中间 16 位
48-59时间戳的高 12 位
60-63版本(v1 为 0001)
64-65变体(RFC4122 为 10)
66-79时钟序列(14 位)
80-127节点 ID(48 位)

UUID v1 与其他版本对比

版本基于用例隐私
UUID v1时间 + MAC可排序 ID⚠️ 暴露 MAC
UUID v3命名空间 + MD5确定性 ID✅ 私密
UUID v4随机安全随机 ID✅ 私密
UUID v5命名空间 + SHA-1确定性 ID✅ 私密
UUID v6时间(重排)可排序 ID⚠️ 暴露 MAC
UUID v7时间 + 随机可排序 ID✅ 私密

常见用例

  • 数据库键:分布式数据库
  • 审计日志:按时间跟踪
  • 事务 ID:业务流程
  • 会话跟踪:Web 应用
  • 内容寻址:CMS 系统
  • 物联网消息:设备通信

常见问题

UUID v1 是否具备加密安全性?

不具备。若已知时间戳和 MAC 地址,UUID v1 可被预测。若需更高安全,请使用随机 UUID v4。

UUID v1 值会发生冲突吗?

由于时间戳精度、时钟序列计数器和节点 ID,冲突在实践中极为罕见。

我能否从 UUID v1 中提取创建时间?

可以。多数 UUID 库提供算法来提取时间戳部分。

UUID v1 可按创建时间排序吗?

可以,但需特殊排序函数。直接字符串比较无法正确排序。

UUID v1 会暴露我的 MAC 地址吗?

默认会。大多数实现使用 MAC 作为节点 ID。关注隐私的实现可使用随机节点 ID。

资源