跳到主要内容

哈希碰撞概率计算器(生日悖论)

计算给定哈希大小和项目数的至少一次哈希或ID碰撞的概率,使用生日悖论公式——加上达到50%、1%、0.01%或自定义碰撞风险所需的项目数。

输入

哈希或ID可以取的不同值的数量 (2^bits)。

生成的随机哈希/ID数。接受纯数字或科学计数法,如1e12。

下面的50% / 1% / 0.01%阈值也总是显示的。

输出

碰撞概率结果

结果
指标
No data yet
使用标准生日悖论近似 P = 1 - e^(-n(n-1)/2H),其中 H 是哈希/ID 空间的大小。"所需项目"数字是该公式穿过给定概率的项目数——一切都在您的浏览器中运行,您输入的任何内容都不会被发送到任何地方。
这对您有帮助吗?

使用此工具的更多方式

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。

如何使用

  1. 从下拉列表中选择哈希大小 (MD5、SHA-1、SHA-256、SHA-512、UUID v4、CRC32),或选择自定义位大小并设置您自己的位宽。
  2. 输入您计划生成的项目数。纯数字和科学计数法都有效——输入 1e9 表示十亿。
  3. 阅读该数量项目至少发生一次碰撞的概率。
  4. 该表还始终显示达到50%、1%或0.01%碰撞风险所需的项目数,以及用于查询任何其他目标概率的项目数的滑块。

为什么数学需要谨慎

用手工解决这个问题(或要求聊天助手"只是计算一下")通常会在规模上失败:2^256有78位数字,天真的计算器要么溢出,要么无声地截断指数,给出荒谬的概率。此工具将每个计算保留在log2空间中——哈希空间本身永远不会实现为一个巨大的数字——因此无论哈希大小有多大,它都保持准确,并在内部使用 expm1 以便非常小的碰撞概率不会四舍五入为零。

Git提交 SHA-1或短数据库ID碰撞需要多少项?

相同的公式,更小的空间。7个字符的短Git哈希是28位——选择自定义位大小并将其设置为28,以查看在短哈希碰撞变得可能之前需要多少提交。同样的方法适用于任何自动递增ID空间、会话令牌长度或您调整大小的短链接别名。

隐私

所有内容都在您的浏览器中运行——您输入的数字不会被发送到任何地方。

相关工具

如果您选择哈希大小以避免在真实系统中发生这种类型的碰撞,调整您的实际位预算以实现有意的假正例率是一个相关的问题——请参阅布隆过滤器参数计算器。要生成哈希本身,请使用哈希生成器UUID生成器

birthday paradoxbirthday problembirthday attackcollision probabilityuuid collision oddssha-256 collisionmd5 collisionhash collision oddspigeonhole principlerandom id collision

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。