我需要通过散列一些数据来生成全局唯一 ID。
一方面,我可以使用时间戳和网络地址的组合,这是独一无二的,因为每台计算机只能同时创建一个 id。但由于这些数据太长,我需要对其进行哈希处理,因此可能会发生冲突。(附带说明一下,如果时间戳不够准确,我们也可以输入一个随机数。)
另一方面,我可以只使用一个随机数并对其进行哈希处理。这不应该带来与第一种方法完全相同的哈希冲突概率吗?有趣的是,这种方法会更快并且更容易实现。
使用唯一数据而不是随机数据时,在哈希冲突方面是否存在差异?(顺便说一句,我不会使用标准描述的真实 GUID,但我的只会是 64 位长。但这不应该影响问题。)