php hash('crc32') 和 crc32() return 不同的值
php hash('crc32') and crc32() return different value
我想问一下 PHP crc32 散列。
我尝试使用 hash('md5','value')
和 md5('value')
其 return 相同的输出。
output : 2063c1608d6e0baf80249c42e2be5804
但是当我尝试使用 hash('crc32','value')
和 crc32('value')
时,其 return 不同的输出。
hash() output : e0a39b72
crc32() output : 494360628
有人知道为什么它可以 return 不同的输出吗?
谢谢:)
hash("crc32b", $str)
will return the same string as str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT)
.
见manual and also about difference between crc32 and crc32b
它们之间有细微差别,首先 crc32()
使用散列算法 crc32b
和 crc32()
returns 一个整数不像 hash()
returns 一个十六进制值。
$str = 'testing';
$hex = hash('crc32b',$str); // e8f35a06
$dec = crc32($str); // 3908262406
echo dechex($dec) == $hex; // true, both value e8f35a06
echo hexdec($hex) == $dec; // true, both value 3908262406
请记住,32 位和 64 位环境中的值不同。
PHP 调用 crc32(...)
或 hash("crc32b", ...)
(一个返回整数,另一个返回字符串)的是标准的 PKZip/ITU-T V.42 CRC-32。 PHP 调用 hash("crc32", ...)
,奇怪地使用与不兼容的 PHP crc32()
函数相同的名称,是不同的,并且是 BZIP2 CRC-32。
我想问一下 PHP crc32 散列。
我尝试使用 hash('md5','value')
和 md5('value')
其 return 相同的输出。
output : 2063c1608d6e0baf80249c42e2be5804
但是当我尝试使用 hash('crc32','value')
和 crc32('value')
时,其 return 不同的输出。
hash() output : e0a39b72
crc32() output : 494360628
有人知道为什么它可以 return 不同的输出吗?
谢谢:)
hash("crc32b", $str)
will return the same string asstr_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT)
.
见manual and also about difference between crc32 and crc32b
它们之间有细微差别,首先 crc32()
使用散列算法 crc32b
和 crc32()
returns 一个整数不像 hash()
returns 一个十六进制值。
$str = 'testing';
$hex = hash('crc32b',$str); // e8f35a06
$dec = crc32($str); // 3908262406
echo dechex($dec) == $hex; // true, both value e8f35a06
echo hexdec($hex) == $dec; // true, both value 3908262406
请记住,32 位和 64 位环境中的值不同。
PHP 调用 crc32(...)
或 hash("crc32b", ...)
(一个返回整数,另一个返回字符串)的是标准的 PKZip/ITU-T V.42 CRC-32。 PHP 调用 hash("crc32", ...)
,奇怪地使用与不兼容的 PHP crc32()
函数相同的名称,是不同的,并且是 BZIP2 CRC-32。