Digest::CRC - Generic CRC functions
# Functional style
use Digest::CRC qw(crc64 crc32 crc16 crcccitt crc crc8 crcopenpgparmor);
$crc = crc64("123456789");
$crc = crc32("123456789");
$crc = crc16("123456789");
$crc = crcccitt("123456789");
$crc = crc8("123456789");
$crc = crcopenpgparmor("123456789");
$crc = crc($input,$width,$init,$xorout,$refout,$poly,$refin,$cont);
# add data to existing
$crc = crc32("ABCD", $crc);
# OO style
use Digest::CRC;
$ctx = Digest::CRC->new(type=>"crc16");
$ctx = Digest::CRC->new(width=>16, init=>0x2345, xorout=>0x0000,
refout=>1, poly=>0x8005, refin=>1, cont=>1);
$ctx->add($data);
$ctx->addfile(*FILE);
$digest = $ctx->digest;
$digest = $ctx->hexdigest;
$digest = $ctx->b64digest;
The Digest::CRC module calculates CRC sums of all sorts. It contains
wrapper functions with the correct parameters for CRC-CCITT, CRC-16, CRC-32
and CRC-64, as well as the CRC used in OpenPGP's ASCII-armored checksum.
https://tools.ietf.org/html/rfc4880#section-6
CRC algorithm code taken from "A PAINLESS GUIDE TO CRC ERROR DETECTION
ALGORITHMS".
The author of this package disclaims all copyrights and releases
it into the public domain.