免扫码快速登录设为首页收藏本站帮助中心
查看: 211|回复: 1
收起左侧

[PHP/ASP/JSP] 64位PHP实现计算数据/字符串的CRC64值算法纯源码

[复制链接]
发表于 2019-5-26 00:03:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x

  1. <?php
  2. define('CRC64_TABLE',crc64_table());        //不支持32位PHP否则会出错

  3. function crc64_table(){                //初始化CRC64表格
  4.     $return = array();
  5.         for($n=0;$n<256;$n++){
  6.                 $crc = $n;
  7.                 for($k=0;$k < 8;$k++){
  8.                         $crc = ($crc >> 1) & PHP_INT_MAX ^ ($crc&1 ? -3932672073523589310 : 0);
  9.                 }
  10.         $return[$n] = $crc;
  11.     }
  12.     return $return;
  13. }


  14. function crc64($data){                //计算CRC64
  15.         $crc = -1;
  16.         $j = ~(0xff << 56);
  17.         $len = strlen($data);
  18.         for($i = 0; $i < $len; $i++){
  19.                 $crc = CRC64_TABLE[($crc ^ ord($data[$i])) & 0xff] ^ (($crc >> 8) & $j);
  20.     }
  21.     return ~$crc;
  22. }


  23. printf("%X", crc64("Hello World! 中文测试"));                //CRC64: B9DA28CA2175C70C


  24. ?>
复制代码

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则