字符串的MD5哈希值作为数组的键


MD5 hash of string as key for array

我希望有一个字符串的一些值,并希望得到某种键的数组来保持它的值例如:"这是一个测试"

$tmpAr['ce114e4501d2f4e2dcea3e17b546f339'] = array("somevar" => "somedata", "morevar" => "moredata");

我想这样做的原因是,因为我不知道确切的文本将被用作密钥,而不是剥离每一个可能有问题的部分,哈希将照顾它。

每个分组中可能少于100个字符串,因此重复键的可能性非常小。

使用这个有什么问题吗?

这不是一个好方法,因为您可能会有键冲突。你可以从维基百科上读到

MD5不是抗碰撞的

一般来说,由于鸽子洞原理,使用哈希函数来创建键从来都不是一个好的选择。键冲突将导致覆盖该数组位置的值,这种行为将很难调试。因此,你会遇到严重的问题和头痛。

总之,我建议您考虑另一种方法来创建密钥,以确保密钥的唯一性。