哈希使用比随机数据更好的唯一数据?

时间:2013-08-31 09:44:20

标签: random hash guid probability hash-collision

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

一方面,我可以使用时间戳和网络地址的组合,这是唯一的,因为每台计算机只能同时创建一个ID。但由于这个数据很长,我需要哈希它,因此可能会发生冲突。 (作为旁注,如果时间戳不够精确,我们也可以输入一个随机数。)

另一方面,我可以使用随机数和哈希值。不应该带来与第一种方法完全相同的哈希冲突概率吗?这很有意思,因为这种方法会更快,更容易实现。

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

1 个答案:

答案 0 :(得分:1)

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