我想生成一个基于数组内容的唯一标识符。我最初的方法是简单地做:如何为阵列生成唯一的密钥?
$key = md5(json_encode($array));
不过,我想绝对确保关键是独特的,有远程可能性,即两个不同的阵列可以产生相同的MD5哈希值。目前的想法是:
$key = base64_encode(json_encode($array));
这是保证是唯一的,但产生一个相当长的关键。我可以使用sha512还是这种类型的散列函数与md5具有相同的关键冲突潜力?有没有什么办法可以生成比base64方法更短的密钥?这种方法100%保证是唯一的?
要100%清楚,我的问题是:如何为一组数据生成最短可能的100%唯一标识符?
Downvoter,我很想知道这太宽泛了。它包含最低限度的代码来演示这个问题以及我尝试过的并且提出了一个非常具体的问题。 – billynoah
应该基于数组的内容吗?如果没有,使用uuid或类似的东西? – Robert
是的数组内容 - 更新的问题。不知道我理解你的建议。数组不包含任何唯一的ID。这正是我想要生成的。 – billynoah