Ask HN:我们刚刚遇到了一个真实的 UUID v4 冲突……
摘要
一位开发者报告在仅有 15,000 条记录的数据库中发生了真实的 UUID v4 冲突,引发了对 uuid npm 包随机性的质疑。
我知道你在想什么……我自己也无法相信,但……<p>今天早上,我们的数据库标记了一个重复的 UUID(v4)。我检查了一下,以为是双重插入的 bug 之类的,但并不是。<p>原始的 UUID 来自一条在 2025 年(大约一年前)添加的记录,而今天系统插入了一个新文档,生成了一个新的 UUIDv4,结果却与之前完全相同:<p>b6133fd6-70fe-4fe3-bed6-8ca8fc9386cd<p>我们使用的是:
https://www.npmjs.com/package/uuid<p>我以为这在技术上是不可能的,永远不会发生,而且我们并没有以任何方式修改 UUID,我真的想知道这……怎么可能!?我们只是调用了:<p>import { v4 as uuidv4 } from "uuid";<p>const document_id = uuidv4();<p>……然后插入数据库,仅此而已。<p>此外,数据库只有大约 15000 条记录,现在却发生了一次冲突。从统计学上来说……不可能。<p>有人遇到过这种情况吗?!到底……
查看缓存全文
缓存时间: 2026/05/08 18:29
# Ask HN: 我们刚刚遇到了真正的UUID v4冲突……
来源:https://news.ycombinator.com/item?id=48060054
https://news.ycombinator.com/vote?id=48060054&how=up&goto=item%3Fid%3D48060054
Ask HN: 我们刚刚遇到了真正的UUID v4冲突…… (https://news.ycombinator.com/item?id=48060054)
149 points by mittermayr (https://news.ycombinator.com/user?id=mittermayr) 9小时前 (https://news.ycombinator.com/item?id=48060054)
| 隐藏 (https://news.ycombinator.com/hide?id=48060054&goto=item%3Fid%3D48060054) | 历史 (https://hn.algolia.com/?query=Ask%20HN%3A%20We%20just%20had%20an%20actual%20UUID%20v4%20collision...&type=story&dateRange=all&sort=byDate&storyText=false&prefix&page=0) | 收藏 (https://news.ycombinator.com/fave?id=48060054&auth=c06f3092538bd11420a6524bdf6c081cc9c44c6c) | 154条评论 (https://news.ycombinator.com/item?id=48060054)
我知道你在想什么……我仍然不敢相信,但是……
今天早上,我们的数据库标记了一个重复的 UUID (v4)。我检查了一下,原以为是重复插入的bug之类的问题,但并不是。
原始的UUID来自2025年(大约一年前)添加的一条记录,而今天系统插入了一个新文档,生成了一个新的UUIDv4,结果和之前一模一样:
b6133fd6-70fe-4fe3-bed6-8ca8fc9386cd
我们用的是:https://www.npmjs.com/package/uuid
我原以为这在技术上是不可能的,永远不会发生,而且我们也没有以任何方式修改UUID,所以真的搞不懂这……怎么可能?!我们只是调用了:
import { v4 as uuidv4 } from "uuid";
const document_id = uuidv4();
……然后插入数据库,就这么简单。
另外,数据库只有大约15000条记录,现在却出现了一次冲突。从统计学上讲……是不可能的。
有人遇到过这种情况吗?这到底是……
帮助 (https://news.ycombinator.com/formatdoc)
相似文章
Show HN: Id-agent – 为AI代理节省Token的UUID替代方案
id-agent是一个开源npm库,生成可读的、节省Token的基于单词的ID,作为AI代理的UUID替代方案,将Token成本降低约40%,同时保持抗碰撞性。
Mini Shai-Hulud再次来袭:314个npm包遭入侵
npm账户'atool'被入侵,导致317个包中发布了637个恶意版本。该载荷窃取凭据,通过AI编码工具和系统服务建立持久化,并通过GitHub外泄数据。
无法预防这种情况,唯一频繁发生此类事件的包管理器如此表示
讽刺文章指出npm注册表中反复出现的供应链攻击,与Go和Rust等更安全的生态系统形成对比,并嘲笑JavaScript社区对这种漏洞的接受态度。
关于 /dev/urandom 的常见误解 (2014)
澄清了关于 /dev/urandom 和 /dev/random 的常见误解,说明 /dev/urandom 是类 Unix 系统中加密随机性的首选来源。
事故复盘:TanStack npm 供应链入侵事件
本文详细复盘了针对 TanStack npm 包的供应链攻击事件,涉及缓存投毒、OIDC 令牌提取及凭证窃取恶意软件。所有受影响版本均已弃用;建议用户轮换凭证。