Мы пытаемся урегулировать внутренние споры в нашей команде разработчиков :
. Мы ищем 64 -битную хэш-функцию PHP. Мы нашли PHP-реализацию MurmurHash3 , но MurmurHash3 имеет либо 32 -бит, либо 128 -бит, а не 64 -бит.
Co -рабочий #1 считает, что для создания 64 -битного хэша из MurmurHash3 мы можем просто нарезать первый (или последний, или любые )64 бита 128 -битного хэша. и что это будет таким же доказательством коллизий -, как и собственная 64-битная -хэш-функция.
Co -worker #2 считает, что мы должны найти нативную 64 -битную хеш-функцию, чтобы уменьшить коллизии, и что 64 -битные фрагменты 128 -битного хэша не будут такими защищенными от коллизий, как родной 64 -битный хеш.
Кто прав?
Изменится ли ответ, если мы возьмем первый (или последний, или любые )64 -бит криптографического хэша, такого как SHA1, вместо Murmur3?