XBMC的HASH(CRC32)函数

XBMC使用的CRC32函数与PHP的CRC32函数算法不同,同一个字符串“123456789”,XBMC处理后返回0x0376E6E7,而PHP返回0xCBF43926,所以只能把XBMC使用的C#的CRC32函数port到PHP了,函数如下


function xbmc_crc32($str){
$m_crc = 0xFFFFFFFF;
$bytes = unpack('C*', strtolower($str));
foreach($bytes as $byte) {
$m_crc = $m_crc ^ ( $byte << 24 ); for ($rep = 0; $rep < 8; $rep++) { if ( DECHEX( $m_crc & 0x80000000) == DECHEX(0x80000000)) { $m_crc = ($m_crc << 1) ^ 0x4C11DB7; } else { $m_crc = ($m_crc << 1); } } } return (int)$m_crc; }

镜像链接:谷歌镜像 | 亚马逊镜像

分类: 科技, 编程 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.