猜测(匹配)Guid的概率是多少?

Rhi*_*X64 13 math guid probability

只是很好奇,但匹配Guid的概率是多少?

从SQL服务器说一个Guid:5AC7E650-CFC3-4534-803C-E7E5BBE29B3D

这是一个因素吗?:(36*32)!=(1152)!

讨论= D.

jas*_*son 27

目前尚不清楚你在问什么.我看到两种方式来解释你的问题.

  1. 鉴于GUID g,有人猜测它的概率是多少?为简单起见,我们假设GUID的所有128位都可用.然后猜测的概率g2^-128.那很小.让我们对此有所了解.假设我们的攻击者每秒可以生成10亿个GUID.为了有50%的猜测机会g,我们的攻击者必须生成2 ^ 127个GUID.以每秒10亿的速率生成2 ^ 127个GUID需要5391448762278159040348年.

  2. 我们正在生成一系列guids.发生碰撞的可能性有多大?也就是说,我们生成具有相同值的两个guid的可能性是多少?这是生日悖论.如果你随机生成一系列n个GUID,那么至少有一次碰撞的概率是近似的p(n) = 1 - exp(-n^2 / 2 * 2^128)(这是生日问题,可能的生日数是2 ^ 128).

n p(n) 2^30 1.69e-21 2^40 1.77e-15 2^50 1.86e-10 2^60 1.95e-03

因此,即使您生成2 ^ 60个GUID,碰撞的几率也非常小.如果你每秒可以产生10亿个GUID,那么碰撞碰撞的可能性仍然需要36年才能达到1.95e-03.


Stu*_*Stu 6

可能的GUID(128位值)的数量是2 ^ 128或3.4×10 ^ 38--大约2万亿每立方毫米的地球整个体积.

换句话说,有点低.

(地球卷参考来源:WikiPedia)