crc32和crc32b有什么区别?

时间:2013-04-07 09:47:43

标签: php

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

3 个答案:

答案 0 :(得分:8)

两种完全不同的算法。 CRC32b是定义为here的一致性算法的实现,而CRC32是定义的here的帧校验序列。它们是两个完全不同的东西,虽然差异往往不大。

检查此方法的一种方法:

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

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:0)

在mhash手册页上解释了crc32和crc32b之间的区别。 crc32是用于以太网的一种,而crc32b是用于zip,png的一种。在所使用的表上有所不同。

quote taken from php.net