如何将GUID和64位时间戳散列到另一个GUID中

时间:2009-06-25 07:32:33

标签: c++ hash guid

我们正在使用专有数据库,并且有一个表,其语义复合键由128位GUID和64位时间戳组成。 “语义复合键”在某种意义上说,表中可能出现具有相同GUID的多个记录,以及具有相同时间戳的多个记录;但是这对(GUID,时间戳)是唯一的。作为更好地支持散列机制的增强,我们可以强制时间戳完全唯一,例如通过将其递增一毫秒。

专有数据库相当简约,并且有一个128位散列键,我们希望将其用于快速访问。因此,我们需要将GUID和时间戳散列为128位字段,即进入另一个GUID。

你能提出一个最好能达到这个目的的哈希函数吗?

1 个答案:

答案 0 :(得分:3)

MD5怎么样?它具有合适的长度和良好的分布特性。计算上比你拥有的两个领域的异或更强,真实。