为什么crc32($data)
在PHP中产生与hash("crc32", $data)
完全不同的哈希值有一些具体原因吗?
请考虑此代码段(也在http://ideone.com/eqbin4在线发布):
<?php
$data = "message";
echo(sprintf("%08x", crc32($data)) . "\n");
echo(hash("crc32", $data) . "\n");
?>
输出:
b6bd307f
c048b5b8
我在这里出错了,或者这只是一个PHP的好奇心,对相同类型的哈希使用不同的CRC-32计算方法?
答案 0 :(得分:3)
看起来crc32($d)
函数等同于hash("crc32b", $d)
调用,而不是hash("crc32", $d)
。