可能的碰撞哈希uuid cakephp

时间:2013-08-10 18:06:27

标签: security cakephp hash

如果在uuid()字符串上使用Security::hash,是否可能发生冲突?我知道uuid()会生成真正独特的字符串,但是我需要对它们进行哈希处理,如果有可能重复哈希字符串,我会担心。

由于

2 个答案:

答案 0 :(得分:1)

首先,与名称相反,uuid不会创建真正独特的字符串。它生成一个非常高概率的字符串(足够高,几乎可以将所有目的都视为唯一)。

至于你碰撞的几率,这实际上取决于你使用的散列算法。假设一个精心构建的散列算法在其输出空间上均匀分布,则与任何两个散列冲突的几率为1 / 2^n,其中n是以位为单位的散列长度。在生日攻击情形中任意两个哈希碰撞的几率可以使用公式p(h) = h^2 / 2 m近似,其中h是您希望生成的哈希数,m是输出空间(2)例如,在SHA256的情况下为^ 256。

因此,总而言之,无论您使用何种哈希算法,始终都有机会获得哈希冲突。然而,在几乎任何等于或大于SHA256的情况下,机会非常小,不值得担心。您可以更好地花时间考虑下一秒钟公交车在服务器上运行的可能性。

答案 1 :(得分:0)

uuid可以生成重复,但机会非常小。

安全:: cakePHP的哈希看起来像PHP的哈希函数。

如果你在sha512上使用它应该是相当不错的。