# Poco

# class Checksum

Library: Foundation
Package: Core
Header: Poco/Checksum.h

## Description

This class calculates CRC-32 or Adler-32 checksums for arbitrary data.

A cyclic redundancy check (CRC) is a type of hash function, which is used to produce a small, fixed-size checksum of a larger block of data, such as a packet of network traffic or a computer file. CRC-32 is one of the most commonly used CRC algorithms.

Adler-32 is a checksum algorithm which was invented by Mark Adler. It is almost as reliable as a 32-bit cyclic redundancy check for protecting against accidental modification of data, such as distortions occurring during a transmission, but is significantly faster to calculate in software.

## Member Summary

Member Functions: checksum, type, update

## Enumerations

### Type

TYPE_ADLER32 = 0

TYPE_CRC32

## Constructors

### Checksum

Checksum();

Creates a CRC-32 checksum initialized to 0.

### Checksum

Checksum(
Type t
);

Creates the Checksum, using the given type.

## Destructor

### ~Checksum

~Checksum();

Destroys the Checksum.

## Member Functions

### checksum

Poco::UInt32 checksum() const;

Returns the calculated checksum.

### type

Type type() const;

Which type of checksum are we calulcating

### update

void update(
const char * data,
unsigned length
);

Updates the checksum with the given data.

### update

void update(
const std::string & data
);

Updates the checksum with the given data.

### update

void update(
char data
);

Updates the checksum with the given data.