Ask HN:我们刚刚遇到了一个真实的 UUID v4 冲突……

Hacker News Top 新闻

摘要

一位开发者报告在仅有 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>有人遇到过这种情况吗?!到底……
查看原文 导出为 Word 导出为 PDF
查看缓存全文

缓存时间: 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)

相似文章

非确定性是CVE修补工作的难题

Hacker News Top

文章探讨了Claude Mythos、Big Sleep和Microsoft Copilot等AI模型正日益发现CVE漏洞,以及Nix/Flox如何通过依赖集去重,将CVE分类复杂度从O(n)降低到O(u),提供声明式包管理解决方案。

人人都该从 npmx 偷学的功能

Lobsters Hottest

npmx 是一个 MIT 授权的 npm 仓库替代前端,它在安全与可用性上做了增强:展示传递式安装体积、暴露安装脚本、可视化过期/含漏洞依赖树,还逼得 npmjs.com 终于上线了深色模式。