Различия в функциях crc32 () и hash ()

1

Я думаю, что я не понимаю разницы между этими двумя функциями, которые я пытался найти между ними, выполнив следующий код (PHP 5.6)

$crc_codding = crc32("codding");
$crc_gnu = crc32("gnu");

$hash_codding = hash("crc32", "codding");
$hash_gnu = hash("crc32", "gnu"); // hash collision with $crc_codding example

var_dump(hash_equals($hash_codding, $hash_gnu));  // bool(false)

var_dump($crc_codding==$hash_codding);            // bool(false)
var_dump($crc_codding==$crc_gnu);                 // bool(true)
var_dump($crc_codding===$crc_gnu);                // bool(true)

Но это не помогло мне, имеет ли hash() funtion некоторый встроенный механизм соления?

Я не уверен, могу ли я что-то сказать...

Теги:
collision
hash
comparison
equality

1 ответ

2
Лучший ответ

Алгоритм hash(), который соответствует функции crc32(), на самом деле является "crc32b", а не "crc32". Прочтите конец предупреждения в руководстве по PHP функции crc32.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню