ChatGPT 会话 ID 藏时间戳:UUID 逆向工程揭秘
原创ChatGPT 会话 ID 藏时间戳:UUID 逆向工程揭秘
ChatGPT 的 URL 到处都是。浏览器历史里,聊天日志里,甚至代理日志里都能撞见。我留意到这些 URL 里都嵌着一串像 UUID 的东西,例如 https://chatgpt.com/c/69d14837-c894-83e8-be51-203e72906522 来源:HH。起初我以为是随机字符,但仔细想想,OpenAI 为什么要在会话 ID 里放一个 128 位的标识符?如果纯粹为了唯一性,随机生成就够了。可这串东西真的只是随机吗?我开始翻材料,发现这事没那么简单。Hindsight Foundry 的博客里有人专门拆过这类 ID,结论是里面有时间戳,但用的是“best guesses”这种措辞 来源:HH。
UUID 解剖:128 位里藏着什么
UUID 是 128 位标识符,通常写作 32 个十六进制字符,按 8-4-4-4-12 分成五组 来源:HH。其中两个固定位很重要:版本号在第三组首字符,variant 取第四组高位。标准 UUID 的 variant 只能是 8、9、a 或 b 来源:HH。版本号决定其余 122 位的生成方式,这就是逆向工程的入口。想从 ChatGPT 会话 ID 里挖出时间,第一步得搞清楚这串字符到底是哪个版本的 UUID。
UUIDv1 含时间戳和节点 ID,节点 ID 经常是生成机器的 MAC 地址 来源:HH。Unfurl 从 v2021.06 起就能识别节点 ID 是随机数还是真实 MAC 来源:HH。这已经是很成熟的能力了。但 v1 的问题在于,时间戳嵌在中间,不直观,且节点 ID 会泄露机器信息。不过,如果对方用的是 v4 或 v5,那时间戳就彻底没戏,因为 v4 是纯随机,v5 是名称哈希,都没有时间信息 来源:HH。
不过作者提醒,这些字段含义是 best guesses,OpenAI 从没公开过格式 来源:HH。这是逆向工程,不是官方文档。我认同这个分寸,ChatGPT 的会话 UUID 里可能真藏了时间戳,但具体怎么分布,得靠大量样本推出来。作者刻意区分直接观察和 educated guesses 来源:HH,这分寸感不错。至少他明说了哪些是看到的,哪些是猜的,比那些把猜测当结论的博客强。
版本演化与时间戳:从随机到可排序
UUIDv4 完全随机,没东西可提取;UUIDv5 是名称哈希,也没有时间戳 来源:HH。ChatGPT 看起来不打算用这些版本。我在 LinkedIn 消息线程里发现,站点从一种 UUID 版本切换到另一种,仍然能推断 ID 生成时间 来源:HH。这说明版本切换本身就能透露信息,不一定非要标准版本才能提取时间。ChatGPT 的会话 ID 如果换过版本,那换的时间点本身就是线索。
RFC 9562 在 2024 年引入 UUIDv6 和 v7,两者时间戳前置,可按创建时间排序,v7 尤其受数据库场景欢迎 来源:HH 来源:RFC。Unfurl v2026.09 已经能提取这两类时间戳 来源:HH。这对开发者是好事,但聊天应用更可能是自定义格式。v6/v7 的好处是时间戳在前面,看一眼就能排序,不用解析中间位。
UUIDv8 是“custom”版本,版本位和 variant 位固定,其余 122 位由厂商随心定义 来源:HH。厂商不公布格式的话,就只能靠逆向工程。ChatGPT 的会话 ID 会不会是 v8?作者没有明说,只透露“spoiler: there's a timestamp” 来源:HH。我不确定具体是哪个版本,但既然作者花了大量样本去推,至少说明这串 UUID 不像 v4 那样毫无意义。时间戳藏在里面,就一定有办法挖出来。
多源视角:HN 标题、正文与 RFC 9562 的交叉验证
HN 提交的标题是“New research shows how to extract a timestamp from ChatGPT IDs” 来源:HN,但正文一开头就说这是“reverse-engineered”,OpenAI 没有文档化这些格式 来源:HH。标题用“shows”好像很笃定,正文却说“best guesses”。这两个来源对证据强度的措辞差别很大。我倾向于正文的说法,逆向工程本来就是猜出来的。标题的“shows”给人一种已经证实的感觉,实际作者自己都承认是 educated guesses。
正文引用 RFC 9562 说明 UUIDv6/v7 时间戳前置 来源:HH 来源:RFC,这个来源可靠。但 RFC 9562 只定义了规范,没说 ChatGPT 用了哪种。作者用交叉验证来补这个缺口:把解码出的时间戳与浏览器历史、代理日志、钓鱼重定向链里的上下文时间比对 来源:HH。这是实际可行的办法,也是我能认可这个研究的原因。光有逆向工程不够,得拿实际场景里的时间点去对照,才能确认字段含义没猜错。
作者说“tried to be clear about which parts are directly observed and which are educated guesses” 来源:HH,但 HN 摘要里完全没提这个区分 来源:HN。HN 标题给人感觉是确定结论,正文实际是概率推断。这种标题和内容的落差我见得不少,读者需要自己看原文,别只看摘要就转发。如果只读 HN 标题,你会以为 OpenAI 官方文档化了这个格式,实际完全不是这么回事。
原文:
New research shows how to extract a timestamp from ChatGPT IDs · 来源:Hacker News
作者:itfan123 值班编辑 · 发布于 2026年10月30日
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123





