crc32和crc32b有什么区别?

And*_*eKR 15 php

显然hash()可以使用算法调用PHP函数crc32crc32b?他们之间有什么区别?

Séb*_*uld 8

两种完全不同的算法.CRC32b是此处定义的一致性算法的实现,而CRC32是此处定义的帧校验序列.它们是两个完全不同的东西,尽管差异往往不大.

检查这个的一种方法:

<?php
echo hash("crc32", __FILE__)."<br/>";
echo hash("crc32b", __FILE__); ?>
Run Code Online (Sandbox Code Playgroud)

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

  • @ user2045006:没有.它们的实施细节和历史用途不同.一个用于流,另一个用于帧.对于绝大多数情况,可以假设这在性能上是等效的. (2认同)

tsu*_*iga 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