# phpman > perldoc > Crypt::Checksum::CRC32

## NAME
    [Crypt::Checksum::CRC32](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AChecksum%3A%3ACRC32/markdown) - Compute CRC32 checksum

## SYNOPSIS
       ### Functional interface:
       use [Crypt::Checksum::CRC32](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AChecksum%3A%3ACRC32/markdown) ':all';

       # calculate CRC32 checksum from string/buffer
       $checksum_raw  = crc32_data($data);
       $checksum_hex  = crc32_data_hex($data);
       $checksum_int  = crc32_data_int($data);
       # calculate CRC32 checksum from file
       $checksum_raw  = crc32_file('filename.dat');
       $checksum_hex  = crc32_file_hex('filename.dat');
       $checksum_int  = crc32_file_int('filename.dat');
       # calculate CRC32 checksum from filehandle
       $checksum_raw  = crc32_file(*FILEHANDLE);
       $checksum_hex  = crc32_file_hex(*FILEHANDLE);
       $checksum_int  = crc32_file_int(*FILEHANDLE);

       ### OO interface:
       use [Crypt::Checksum::CRC32](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AChecksum%3A%3ACRC32/markdown);

       $d = [Crypt::Checksum::CRC32](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AChecksum%3A%3ACRC32/markdown)->new;
       $d->add('any data');
       $d->add('another data');
       $d->addfile('filename.dat');
       $d->addfile(*FILEHANDLE);
       $checksum_raw = $d->digest;     # raw 4 bytes
       $checksum_hex = $d->hexdigest;  # hexadecimal form
       $checksum_int = $d->intdigest;  # 32bit unsigned integer

## DESCRIPTION
    Calculating CRC32 checksums.

    *Updated: v0.057*

## EXPORT
    Nothing is exported by default.

    You can export selected functions:

     use [Crypt::Checksum::CRC32](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AChecksum%3A%3ACRC32/markdown) qw(crc32_data crc32_data_hex crc32_data_int crc32_file crc32_file_hex crc32_file_int);

    Or all of them at once:

     use [Crypt::Checksum::CRC32](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AChecksum%3A%3ACRC32/markdown) ':all';

## FUNCTIONS
  crc32_data
    Returns checksum as raw octects.

     $checksum_raw = crc32_data('data string');
     #or
     $checksum_raw = crc32_data('any data', 'more data', 'even more data');

  crc32_data_hex
    Returns checksum as a hexadecimal string.

     $checksum_hex = crc32_data_hex('data string');
     #or
     $checksum_hex = crc32_data_hex('any data', 'more data', 'even more data');

  crc32_data_int
    Returns checksum as unsigned 32bit integer.

     $checksum_int = crc32_data_int('data string');
     #or
     $checksum_int = crc32_data_int('any data', 'more data', 'even more data');

  crc32_file
    Returns checksum as raw octects.

     $checksum_raw = crc32_file('filename.dat');
     #or
     $checksum_raw = crc32_file(*FILEHANDLE);

  crc32_file_hex
    Returns checksum as a hexadecimal string.

     $checksum_hex = crc32_file_hex('filename.dat');
     #or
     $checksum_hex = crc32_file_hex(*FILEHANDLE);

  crc32_file_int
    Returns checksum as unsigned 32bit integer.

     $checksum_int = crc32_file_int('filename.dat');
     #or
     $checksum_int = crc32_file_int(*FILEHANDLE);

## METHODS
  new
    Constructor, returns a reference to the checksum object.

     $d = [Crypt::Checksum::CRC32](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3AChecksum%3A%3ACRC32/markdown)->new;

  clone
    Creates a copy of the checksum object state and returns a reference to the copy.

     $d->clone();

  reset
    Reinitialize the checksum object state and returns a reference to the checksum object.

     $d->reset();

  add
    All arguments are appended to the message we calculate checksum for. The return value is the
    checksum object itself.

     $d->add('any data');
     #or
     $d->add('any data', 'more data', 'even more data');

  addfile
    The content of the file (or filehandle) is appended to the message we calculate checksum for.
    The return value is the checksum object itself.

     $d->addfile('filename.dat');
     #or
     $d->addfile(*FILEHANDLE);

    BEWARE: You have to make sure that the filehandle is in binary mode before you pass it as
    argument to the addfile() method.

  digest
    Returns the binary checksum (raw bytes).

     $result_raw = $d->digest();

  hexdigest
    Returns the checksum encoded as a hexadecimal string.

     $result_hex = $d->hexdigest();

  intdigest
    Returns the checksum encoded as unsigned 32bit integer.

     $result_int = $d->intdigest();

## SEE ALSO
    *   CryptX

    *   <<https://en.wikipedia.org/wiki/Cyclic_redundancy_check>>

