В чем разница между crc32 и crc32b?

По-видимому, функцию hash() функции PHP можно вызывать с помощью алгоритмов crc32 и crc32b ? В чем разница между ними?

Два совершенно разных алгоритма. CRC32b представляет собой реализацию описанного здесь алгоритма согласованности, тогда как CRC32 представляет собой последовательность проверки кадров, определенную здесь . Это две совершенно разные вещи, хотя различия не часто бывают большими.

Один из способов проверить это:

 <?php echo hash("crc32", __FILE__)."<br/>"; echo hash("crc32b", __FILE__); ?> 

Из-за их сходства начальные шестнадцатеричные значения будут относительно похожи.

В соответствии с ответом apm на php.net: «Я подтвердил, что вывод« crc32 »является алгоритмом ITU I.363.5 (aka AAL5 CRC – популяризированным BZIP2, но также используемым в передачах ATM) – алгоритм такой же, как и что в POSIX 1003.2-1992 в Cksum, но это добавляет размер в CRC в конце для дополнительной меры). – crc32b – это 32-битная последовательность проверки кадров ITU V.42 (используется в Ethernet и популяризируется PKZip) . Выход из этого CRC популяризируется в малоформатном формате Intel и будет производить cbf43926 в том же файле ».

Полный комментарий: http://www.php.net/manual/en/function.hash-file.php#104836