По-видимому, функцию 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