MD5 хэш строки в качестве ключа для массива - PullRequest
0 голосов
/ 12 ноября 2011

Мне нужны некоторые значения для строки, и я хотел получить какой-то ключ для массива для хранения его значений, например: "Это тест"

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

Причина, по которой я хотел бы сделать это таким образом, заключается в том, что я не знаю точно, какой текст будет использоваться в качестве ключа, и вместо того, чтобы убрать все возможные проблемные фрагменты, хеш позаботится об этом.

Вероятно, в каждой группе будет менее 100 строк, поэтому вероятность дублирования ключей очень мала.

Есть ли проблемы с использованием этого?

1 Ответ

3 голосов
/ 12 ноября 2011

Это не очень хороший метод, потому что вы можете иметь столкновения клавиш .Как вы можете прочитать из википедии

MD5 не устойчив к столкновениям

В общем, использование функции хеширования для создания ключа никогда не является хорошим выборомиз-за принципа Pigeonhole .Столкновения клавиш вызовут переопределение значений в этой позиции массива, и это поведение будет очень трудно отладить.Таким образом, вы столкнетесь с серьезными проблемами и головной болью.

В заключение я предлагаю вам подумать о другом способе создания ключей, который обеспечит вам уникальность последних.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...