{
  "id": "crc32",
  "kind": "datatype",
  "status": "stable",
  "name": "CRC-32 checksum",
  "doc": "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": "hash",
  "is_pii": false,
  "categories": [
    "cryptography"
  ],
  "langs": [
    "common"
  ],
  "classification": "identifier",
  "regexp": "^[0-9a-fA-F]{8}$",
  "examples": [
    {
      "value": "cbf43926",
      "description": "CRC-32 of the string '123456789' (the standard check value)",
      "valid": true
    },
    {
      "value": "352441c2",
      "description": "CRC-32 of the string 'abc'",
      "valid": true
    },
    {
      "value": "cbf4392",
      "description": "one hex digit short (7 instead of 8)",
      "valid": false
    }
  ],
  "links": [
    {
      "type": "wikipedia",
      "url": "https://en.wikipedia.org/wiki/Cyclic_redundancy_check"
    },
    {
      "type": "other",
      "url": "https://reveng.sourceforge.io/crc-catalogue/17plus.htm#crc.cat.crc-32-iso-hdlc"
    }
  ],
  "detected_by": {
    "tools": [
      "metacrafter"
    ],
    "metacrafter_rules": [
      {
        "rule": "crc32",
        "type": "data",
        "match": "ppr",
        "file": "basic/crypto.yaml"
      },
      {
        "rule": "crc32_by_field",
        "type": "field",
        "match": "text",
        "file": "basic/crypto.yaml"
      }
    ]
  },
  "quality": {
    "score": 85,
    "missing": [
      "mapping (Wikidata, Schema.org, ...)",
      "translation"
    ]
  },
  "source": {
    "path": "data/datatypes/any/cryptography/crc32.yaml",
    "url": "https://github.com/apicrafter/metacrafter-registry/blob/main/data/datatypes/any/cryptography/crc32.yaml",
    "edit_url": "https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/cryptography/crc32.yaml"
  },
  "urls": {
    "html": "http://registry.apicrafter.io/datatype/crc32",
    "json": "http://registry.apicrafter.io/api/v1/datatypes/crc32.json"
  }
}