哈希碰撞概率计算器(生日悖论)
计算给定哈希大小和项目数的至少一次哈希或ID碰撞的概率,使用生日悖论公式——加上达到50%、1%、0.01%或自定义碰撞风险所需的项目数。
输入
哈希或ID可以取的不同值的数量 (2^bits)。
生成的随机哈希/ID数。接受纯数字或科学计数法,如1e12。
下面的50% / 1% / 0.01%阈值也总是显示的。
输出
碰撞概率结果
| 指标 | 值 |
|---|---|
| No data yet | |
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/hash-collision-probability-calculator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"hashSize": "256",
"items": "1000000",
"targetProbability": "50"
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `hash-collision-probability-calculator` tool (Hash Collision Probability Calculator (Birthday Problem)) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/hash-collision-probability-calculator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="哈希碰撞概率计算器(生日悖论) — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|---|
| 需要更多积分? | 查看定价 |
也可通过
使用指南
它的作用
此计算器回答了"生日悖论"背后的问题:如果您生成许多随机哈希或ID,其中两个相同的可能性是多少? 它使用标准的生日悖论近似
P(collision) ≈ 1 - e^(-n(n-1) / 2H)其中 n 是您生成的项目数,H 是哈希或ID空间的大小 (2^bits — 例如 SHA-256 的 2^256,或 UUID v4 中随机位的 2^122)。结果通常与直觉差异很大:对于128位空间,您只需要大约2^64(大约18五重十亿)个随机值,就有50%的概率两个值匹配——远少于您可能期望的2^128。
如何使用
- 从下拉列表中选择哈希大小 (MD5、SHA-1、SHA-256、SHA-512、UUID v4、CRC32),或选择自定义位大小并设置您自己的位宽。
- 输入您计划生成的项目数。纯数字和科学计数法都有效——输入
1e9表示十亿。 - 阅读该数量项目至少发生一次碰撞的概率。
- 该表还始终显示达到50%、1%或0.01%碰撞风险所需的项目数,以及用于查询任何其他目标概率的项目数的滑块。
为什么数学需要谨慎
用手工解决这个问题(或要求聊天助手"只是计算一下")通常会在规模上失败:2^256有78位数字,天真的计算器要么溢出,要么无声地截断指数,给出荒谬的概率。此工具将每个计算保留在log2空间中——哈希空间本身永远不会实现为一个巨大的数字——因此无论哈希大小有多大,它都保持准确,并在内部使用 expm1 以便非常小的碰撞概率不会四舍五入为零。
Git提交 SHA-1或短数据库ID碰撞需要多少项?
相同的公式,更小的空间。7个字符的短Git哈希是28位——选择自定义位大小并将其设置为28,以查看在短哈希碰撞变得可能之前需要多少提交。同样的方法适用于任何自动递增ID空间、会话令牌长度或您调整大小的短链接别名。
隐私
所有内容都在您的浏览器中运行——您输入的数字不会被发送到任何地方。
相关工具
如果您选择哈希大小以避免在真实系统中发生这种类型的碰撞,调整您的实际位预算以实现有意的假正例率是一个相关的问题——请参阅布隆过滤器参数计算器。要生成哈希本身,请使用哈希生成器或UUID生成器。