20

显然 PHP 函数hash()可以用算法调用,crc32并且crc32b?它们之间有什么区别?

4

3 回答 3

8

两种不同的算法。CRC32b 是此处定义的一致性算法的实现,而 CRC32 是此处定义的帧校验序列。它们是不同的东西,尽管差异通常并不大。

一种检查方法:

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

由于它们的相似性,起始十六进制值将相对相似。

于 2013-04-07T09:55:55.167 回答
5

根据 apm 在 php.net 上的回答:“我已经验证了“crc32”的输出是 ITU I.363.5 算法(又名 AAL5 CRC - 由 BZIP2 推广但也用于 ATM 传输 - 该算法与在 Cksum 的 POSIX 1003.2-1992 中,但最后将大小填充到 CRC 中以进行额外测量。-- crc32b 是 ITU V.42 的 32 位帧校验序列(用于以太网并由 PKZip 推广) . 此 CRC 的输出以 Intel little endian 格式推广,并将在同一文件上生成 cbf43926。”

完整评论:http ://www.php.net/manual/en/function.hash-file.php#104836

于 2013-04-07T09:55:44.210 回答
1

crc32 和 crc32b 之间的区别在 mhash 手册页上进行了说明。crc32 是在以太网上使用的,而 crc32b 是在 zip、png 上使用的......它们在使用的表上有所不同。

引用自 php.net

于 2020-11-11T10:42:07.237 回答