从多个数字64位ID开始生成唯一的64位ID有什么好算法?示例:
输入:[2,9875,0,223568,...]随机64位ID列表
输出:唯一的64位数字ID,对于给定的输入必须相同
我正在寻找避免ID冲突的方法。
我对这个不明确的问题道歉。
答案 0 :(得分:4)
如果速度无关紧要,那么:
在md5算法中提供所有id,而不是简单地使用
a)前64位或
b)最后64位或
c)前64位xor后64位
如果速度重要
怎么样:
步骤1:重新排序所有64位ID的字节(对于输入的每个64位ID,以固定但不同的顺序排列。)(如果值不是真的,这可能会有所帮助随机分布)
步骤2: xor所有重新排列的64位ID,以获得新的64位ID。
如果您没有关于64位输入ID范围或值分布的额外信息,则无法避免在聪明的' /'最佳&#39中发生冲突;办法。因为无论你想出什么,你总会找到一组导致碰撞的输入。
答案 1 :(得分:0)