我的应用程序需要全局唯一 ID。我知道有一个 UUID 标准,但我想知道我是否真的需要 128 位。
所以我考虑编写自己的生成器,它使用系统时间、随机数和机器网络地址来生成适合 64 位的 id,因此可以存储在unsigned long long int
C++ 中的数据类型中。
如何确定 64 位对我来说是否足够?
64 位运行大约 18,446,744,073,709,551,616 种组合,大约是 18 和 5.5 万亿。
因此,如果您生成 192 万个哈希,那么发生碰撞的几率将是千万分之一
来源: http: //preshing.com/20110504/hash-collision-probabilities