UUID v6 生成器 - 创建有序的基于时间戳的 UUID

在线生成有序的基于时间戳的第6版 UUID。创建按时间排序的 UUID,以实现最佳的数据库索引和排序。

尝试这些示例:

什么是UUID v6?

UUID版本6是一种基于时间的128位标识符(36字符字符串),被提议作为UUID v1的改进版本。它由以下部分组成:

  • 重新排序的时间戳:60位时间戳,从最高有效位到最低有效位
  • 时钟序列:14位计数器,用于时钟调整
  • 节点ID:48位值(通常为MAC地址)

格式示例1eb527d6-e927-6511-9a03-0242ac130003

UUID v6的工作原理

  1. 计算当前时间戳(自1582-10-15起的100ns间隔)
  2. 重新排序时间戳位以便更好地排序(最高有效位优先)
  3. 获取/递增14位时钟序列(如果时钟向后移动,确保唯一性)
  4. 获取48位节点ID(通常来自MAC地址)
  5. 设置版本位(0110)和变体位(10)
  6. 组装为带连字符的32个十六进制数字:8-4-4-4-12格式

优势与考虑因素

优势考虑因素
  • 可按字典顺序排序
  • 包含创建时间
  • 高性能生成
  • 分布式生成
  • MAC地址隐私问题
  • 时钟同步问题
  • 比随机UUID更可预测
  • 草案规范状态

UUID v6结构

内容
0-47时间戳高48位
48-51版本(0110表示v6)
52-59时间戳低8位
60-63时间戳高4位
64-65变体(10表示RFC4122)
66-79时钟序列(14位)
80-127节点ID(48位)

UUID v6与其他版本对比

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

常见用例

  • 可按时间排序的数据库键:用于按时间顺序排序
  • 分布式数据库:具有按时间排序的索引
  • 日志条目:具有自然时间顺序
  • 审计跟踪:带有嵌入式时间戳
  • 消息队列:用于基于时间的处理
  • 交易记录:具有时间顺序排列

常见问题解答

UUID v1和v6有什么区别?

UUID v6重新排列了UUID v1的时间戳位,使其在字典顺序上可自然排序。内容与v1相同,只是重新排列了顺序。

UUID v6是官方标准吗?

UUID v6目前是提议的RFC 4122bis文档中的草案规范。它尚未成为官方RFC标准,但已在许多UUID库中实现。

我可以从UUID v6中提取创建时间吗?

是的。可以从0-59位提取时间戳组件并转换回日期时间值。

UUID v6可以按创建时间排序吗?

是的。与v1不同,UUID v6按从最高有效位到最低有效位的顺序放置时间戳位,使得字典顺序(字符串)比较与时间顺序相匹配。

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

默认情况下,是的。与UUID v1一样,大多数实现使用MAC地址作为节点ID。注重隐私的实现可能会使用随机节点ID代替。

资源