---
id: "crc32"
kind: "datatype"
status: "stable"
is_pii: false
categories: ["cryptography"]
langs: ["common"]
quality: 85
url: "http://registry.apicrafter.io/datatype/crc32"
---

# CRC-32 checksum (`crc32`)

Check value of CRC-32 (CRC-32/ISO-HDLC, polynomial 0x04C11DB7), the cyclic redundancy check that Ethernet, ZIP, gzip and PNG use to detect accidental corruption of data. It is not a cryptographic hash and does not protect against deliberate changes. It is usually written as 8 hexadecimal digits; some tools, such as MySQL CRC32() and Python zlib.crc32(), return it as an unsigned 32-bit integer instead.

- Parent datatype: `hash`
- Personal data (PII): no
- Categories: Cryptographic identifiers (cryptography)
- Countries: global
- Languages: Common to most languages (common)
- Classification: identifier

## Detection

Regular expression (Python `re`):

```
^[0-9a-fA-F]{8}$
```

## Examples

- `cbf43926` — CRC-32 of the string '123456789' (the standard check value)
- `352441c2` — CRC-32 of the string 'abc'
- `cbf4392` (invalid example) — one hex digit short (7 instead of 8)

## Metacrafter rules

2 rules: 1 match the field name, 1 match values.

- `crc32` (data, `basic/crypto.yaml`)
- `crc32_by_field` (field, `basic/crypto.yaml`)

## Supported by tools

- `metacrafter`

## Sources

- wikipedia: <https://en.wikipedia.org/wiki/Cyclic_redundancy_check>
- other: <https://reveng.sourceforge.io/crc-catalogue/17plus.htm#crc.cat.crc-32-iso-hdlc>

## Quality

Score 85/100. Missing: mapping (Wikidata, Schema.org, ...), translation.

JSON: <http://registry.apicrafter.io/api/v1/datatypes/crc32.json> · Edit: <https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/cryptography/crc32.yaml>
