从多个数字64位ID开始生成唯一64位ID的好算法是什么?示例:
输入: 2,9875,0,223568,随机64位ID的列表。 输出:唯一的64位数字ID,对于给定的输入必须是相同的。
我在寻找避免身份碰撞的方法。
我为这个不明确的问题道歉。
发布于 2016-10-31 15:48:01
如果速度与无关,那么以下情况如何:
在md5算法中输入所有ids,而不是简单地使用
( a)首64位或
( b)最后64位或
( c)前64位xor最后64位
如果速度重要的话,
那麽:
步骤1:重新排序所有64位ID的字节(对于输入的每个64位ID以固定但不同的顺序排列)(如果这些值不是真正随机分布的,这可能会有所帮助)
步骤2: xor所有重新排列的64位id以获得新的64位id。
如果您没有关于64位输入in的范围或值的分布的额外信息,就没有办法以“聪明”/“最佳”的方式避免冲突。因为无论你想出什么,你都会找到一组输入,这些输入会导致碰撞。
https://stackoverflow.com/questions/40345283
复制相似问题