CRC-PHP is a PHP class implementing bitwise CRC-8/16/24/32/64 algorithms.
- PHP 8.0+
- CRC-32 and CRC-64 methods require a 64-bit build of PHP.
Calculate the CRC-16/XMODEM result for a string:
use xenocrat\crc;
$crc = crc::crc16_xmodem("foobar");
Read data from disk and calculate the CRC-24/OPENPGP result:
$file = file_get_contents("README.md");
$crc = crc::crc24_openpgp($file);
Test all implementations by comparing a calculated result to a check value:
$results = crc::test_crc8();
$results = crc::test_crc16();
$results = crc::test_crc24();
$results = crc::test_crc32();
$results = crc::test_crc64();
- CRC-8/AUTOSAR:
crc8_autosar()
- CRC-8/BLUETOOTH:
crc8_bluetooth()
- CRC-8/CDMA2000:
crc8_cdma2000()
- CRC-8/DARC:
crc8_darc()
- CRC-8/DVB-S2:
crc8_dvb_s2()
- CRC-8/GSM-A:
crc8_gsm_a()
- CRC-8/GSM-B:
crc8_gsm_b()
- CRC-8/HITAG:
crc8_hitag()
- CRC-8/I-432-1:
crc8_i_432_1()
- CRC-8/I-CODE:
crc8_i_code()
- CRC-8/LTE:
crc8_lte()
- CRC-8/MAXIM-DOW:
crc8_maxim_dow()
- CRC-8/MIFARE-MAD:
crc8_mifare_mad()
- CRC-8/NRSC-5:
crc8_nrsc_5()
- CRC-8/OPENSAFETY:
crc8_opensafety()
- CRC-8/ROHC:
crc8_rohc()
- CRC-8/SAE-J1850:
crc8_sae_j1850()
- CRC-8/SMBUS:
crc8_smbus()
- CRC-8/TECH-3250:
crc8_tech_3250()
- CRC-8/WCDMA:
crc8_wcdma()
- CRC-16/A:
crc16_a()
- CRC-16/ARC:
crc16_arc()
- CRC-16/CDMA2000:
crc16_cdma2000()
- CRC-16/CMS:
crc16_cms()
- CRC-16/DDS-110:
crc16_dds_110()
- CRC-16/DECT-R:
crc16_dect_r()
- CRC-16/DECT-X:
crc16_dect_x()
- CRC-16/DNP:
crc16_dnp()
- CRC-16/EN-13757:
crc16_en_13757()
- CRC-16/GENIBUS:
crc16_genibus()
- CRC-16/GSM:
crc16_gsm()
- CRC-16/IBM-3740:
crc16_ibm_3740()
- CRC-16/IBM-SDLC:
crc16_ibm_sdlc()
- CRC-16/KERMIT:
crc16_kermit()
- CRC-16/LJ1200:
crc16_lj1200()
- CRC-16/M17:
crc16_m17()
- CRC-16/MAXIM-DOW:
crc16_maxim_dow()
- CRC-16/MCRF4XX:
crc16_mcrf4xx()
- CRC-16/MODBUS:
crc16_modbus()
- CRC-16/NRSC-5:
crc16_nrsc_5()
- CRC-16/OPENSAFETY-A:
crc16_opensafety_a()
- CRC-16/OPENSAFETY-B:
crc16_opensafety_b()
- CRC-16/PROFIBUS:
crc16_profibus()
- CRC-16/RIELLO:
crc16_riello()
- CRC-16/SPI-FUJITSU:
crc16_spi_fujitsu()
- CRC-16/T10-DIF:
crc16_t10_dif()
- CRC-16/TELEDISK:
crc16_teledisk()
- CRC-16/TMS37157:
crc16_tms37157()
- CRC-16/UMTS:
crc16_umts()
- CRC-16/USB:
crc16_usb()
- CRC-16/XMODEM:
crc16_xmodem()
- CRC-24/BLE:
crc24_ble()
- CRC-24/FLEXRAY-A:
crc24_flexray_a()
- CRC-24/FLEXRAY-B:
crc24_flexray_b()
- CRC-24/INTERLAKEN:
crc24_interlaken()
- CRC-24/LTE-A:
crc24_lte_a()
- CRC-24/LTE-B:
crc24_lte_b()
- CRC-24/OPENPGP:
crc24_openpgp()
- CRC-24/OS-9:
crc24_os_9()
- CRC-32/AIXM:
crc32_aixm()
- CRC-32/AUTOSAR:
crc32_autosar()
- CRC-32/BASE91-D:
crc32_base91_d()
- CRC-32/BZIP2:
crc32_bzip2()
- CRC-32/CD-ROM-EDC:
crc32_cd_rom_edc()
- CRC-32/CKSUM:
crc32_cksum()
- CRC-32/ISCSI:
crc32_iscsi()
- CRC-32/ISO-HDLC:
crc32_iso_hdlc()
- CRC-32/JAMCRC:
crc32_jamcrc()
- CRC-32/MEF:
crc32_mef()
- CRC-32/MPEG-2:
crc32_mpeg_2()
- CRC-32/XFER:
crc32_xfer()
- CRC-64/ECMA-182:
crc64_ecma_182()
- CRC-64/GO-ISO:
crc64_go_iso()
- CRC-64/MS:
crc64_ms()
- CRC-64/WE:
crc64_we()
- CRC-64/XZ:
crc64_xz()