notrix/crc

计算输入数据的CRC校验和

dev-master 2017-07-25 20:14 UTC

This package is not auto-updated.

Last update: 2024-09-22 11:59:49 UTC


README

这是一个正在进行中的项目。我并不是这个领域的专家。因此,我在寻找和验证关于常见CRC算法的信息时遇到了困难。我特别寻找可靠的测试向量。

实现算法

  • CRC1
  • CRC16, CRC16-CCITT, CRC16-DNP, CRC16-Modbus, CRC16-QT, CRC16-USB, CRC16-XModem, CRC16-ZModem

使用示例

<?php

// Autoloading via Composer
require __DIR__ . '/vendor/autoload.php';

$crc16ccitt = new mermshaus\CRC\CRC16CCITT();

$crc16ccitt->update('Hello');
$crc16ccitt->update(' World!');

$checksum = $crc16ccitt->finish();

var_dump(bin2hex($checksum)); // string(4) "882a"

测试

$ phpunit

致谢

  • 这个库主要是从Digest CRC(Hal Brodigan编写的Ruby库)移植过来的。

链接

  • Digest CRC。这个库所基于的Ruby库。
  • pycrc。一个用于生成多种CRC算法的C代码和对应查找表的工具。被Digest CRC使用。
  • CRC计算。一个用于生成任意多项式和输入的校验和的在线计算器。由pycrc推荐。
  • 在线CRC计算和免费库。一些CRC算法的另一个在线计算器。
  • 参数化CRC算法目录。关于许多不同CRC算法的信息。