我希望为字符串设置一些值,并希望获得某种数组的键来保存其值,例如:“这是一个测试”
$tmpAr['ce114e4501d2f4e2dcea3e17b546f339'] = array("somevar" => "somedata", "morevar" => "moredata");
我想这样做的原因是因为我不确切知道将使用什么文本作为密钥,而不是删除每个可能有问题的部分,哈希会处理它。
每个分组中可能会少于100个字符串,因此重复键的可能性非常小。
使用它有什么问题吗?
答案 0 :(得分:3)
这不是一个好方法,因为你可以拥有key collisions。正如您可以从维基百科阅读
MD5不是collision resistant
通常,由于Pigeonhole principle,使用散列函数创建密钥永远不是一个好的选择。关键冲突将导致覆盖该数组位置中的值,并且此行为将非常难以调试。因此,你会遇到严重的问题和头痛。
总之,我建议您考虑另一种方法来创建您的密钥,以确保您的后者的唯一性。