假设我在缓存中有1.8亿个值(它们在15分钟后过期),而MD5有2^128个值。 那么我的碰撞概率是多少?或者更好的,是否有一个网页可以回答这个问题或提供大致估计?这将非常有用,因为我需要了解自己的机会。
假设我在缓存中有1.8亿个值(它们在15分钟后过期),而MD5有2^128个值。 那么我的碰撞概率是多少?或者更好的,是否有一个网页可以回答这个问题或提供大致估计?这将非常有用,因为我需要了解自己的机会。
概率为 1-m!/(mⁿ(m-n)!),其中 m = 2¹²⁸,n = 180000000。
在在线 Wolfram 上运行它会超出可用的计算时间!
如果您在本地已安装 SmallTalk,则可以运行此命令:
|m n p|
m := 2 raisedTo:128.
n := 180000000.
p := (1-(m factorial/((m raisedTo:n)*(m-n)factorial)))asFloat.
Transcript show:p printString;cr.
FOOBAR
的情况下,如果存在问题并且哈希累积超过15分钟,至少要确认在发生碰撞事件时会发生什么。这也有助于防止某人通过注入重复的哈希来尝试破坏它。