1

我需要通过散列一些数据来生成全局唯一 ID。

一方面,我可以使用时间戳和网络地址的组合,这是独一无二的,因为每台计算机只能同时创建一个 id。但由于这些数据太长,我需要对其进行哈希处理,因此可能会发生冲突。(附带说明一下,如果时间戳不够准确,我们也可以输入一个随机数。)

另一方面,我可以只使用一个随机数并对其进行哈希处理。这不应该带来与第一种方法完全相同的哈希冲突概率吗?有趣的是,这种方法会更快并且更容易实现。

使用唯一数据而不是随机数据时,在哈希冲突方面是否存在差异?(顺便说一句,我不会使用标准描述的真实 GUID,但我的只会是 64 位长。但这不应该影响问题。)

4

1 回答 1

1

为什么要对随机数进行哈希处理?散列旨在将输入统一映射到键空间,但 PRNG 已经为您提供了统一的结果映射。你所做的只是创造更多的工作。

于 2013-08-31T17:26:24.887 回答