显然可以使用算法crc32
和crc32b
调用PHP函数hash()
?他们之间有什么区别?
答案 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的一种。在所使用的表上有所不同。