这个随机唯一ID生成器发生冲突的机率有多大?

2024-10-03 09:09:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道这个独特的id生成器发生碰撞的几率有多大 https://github.com/vejuhust/blog-code/blob/master/python-short-id-generator/short_id_v5.py

我想为我的Django项目生成一个唯一的url。使用安全吗。我是python和Django的初学者。你知道吗


Tags: djangopyhttpsgithubmastercomidcode
1条回答
网友
1楼 · 发布于 2024-10-03 09:09:21

这是一个base62编码的8字节随机数。然而,编码并不重要,因为每个随机数的编码方式都不同。因此,它归结为两个8字节的随机数相同的概率是多少。你知道吗

我们可以用8个字节生成总共28×8=18'446'744'073'709'552'000个值。因此产生第二个相同值的几率是1/18'446'744'073'709'552'000或0.000000000000542%。你知道吗

如果生成k项,则生成重复项的几率为:

1-(2×8)!/((28×8-k)!×28×8×k)。你知道吗

k增大时,碰撞的几率增加。如果您将字段标记为唯一的,并因此具有重试机制,则它第二次(或第三次)碰撞的可能性非常小。你知道吗

相关问题 更多 >