CRC-32

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Redesigned the article)
(Specific algorithms)
 
(3 intermediate revisions by 2 users not shown)
Line 10: Line 10:
  
 
== Specific algorithms ==
 
== Specific algorithms ==
Selected CRC-32 algorithms are listed here. The names are from the CRC RevEng Catalogue.
+
Selected CRC-32 algorithms are listed here. The names are from the CRC RevEng Catalogue, when possible.
  
 
=== CRC-32/ISO-HDLC ===
 
=== CRC-32/ISO-HDLC ===
Line 17: Line 17:
 
The CRC of ASCII "<code>123456789</code>" is <code>0xcbf43926</code>.
 
The CRC of ASCII "<code>123456789</code>" is <code>0xcbf43926</code>.
  
Used by [[ZIP]], [[PNG]], [[Gzip]], [[ARJ]], etc.
+
Examples of formats that use CRC-32/ISO-HDLC: [[ZIP]], [[PNG]], [[Gzip]], [[ARJ]].
 +
 
 +
=== CRC-32/JAMCRC ===
 +
Equivalent to CRC-32/ISO-HDLC, but with the final CRC's bits inverted (or, rather, ''not'' inverted -- ISO-HDLC is the one that inverts the bits).
 +
 
 +
The CRC of ASCII "<code>123456789</code>" is <code>0x340bc6d9</code>.
 +
 
 +
Examples of formats that use CRC-32/JAMCRC: [[EDI Install archive]] and [[Eschalon Setup archive]], [[Brik]].
  
 
=== CRC-32/CKSUM ===
 
=== CRC-32/CKSUM ===
Used by the traditional Unix/POSIX "cksum" utility.
+
The default algorithm of the traditional Unix/POSIX "cksum" utility. Note that the utility uses a high-level algorithm that preprocesses the input data.
 +
 
 +
The (high-level) CRC of ASCII "<code>123456789</code>" is <code>0x377a6011</code>.
  
The CRC of ASCII "<code>123456789</code>" is <code>0x377a6011</code>.
+
=== CRC-32/MPEG-2 ===
 +
* [https://reveng.sourceforge.io/crc-catalogue/17plus.htm#crc.cat.crc-32-mpeg-2 At CRC RevEng]
 +
* [https://crccalc.com/?crc=123456789&method=CRC-32/MPEG-2&datatype=0&outtype=0 At crccalc.com]
  
 
=== Others ===
 
=== Others ===
Line 32: Line 43:
 
* [https://www.itu.int/rec/T-REC-V.42/en ITU-T Rec. V.42] Section 8.1.1.6.2 (IEEE CRC-32)
 
* [https://www.itu.int/rec/T-REC-V.42/en ITU-T Rec. V.42] Section 8.1.1.6.2 (IEEE CRC-32)
 
* [https://rosettacode.org/wiki/CRC-32 Rosetta Code: CRC-32]
 
* [https://rosettacode.org/wiki/CRC-32 Rosetta Code: CRC-32]
 +
* [https://crccalc.com/ Online CRC-8 CRC-16 CRC-32 Calculator]
  
 
See also [[CRC#Links]].
 
See also [[CRC#Links]].

Latest revision as of 15:09, 12 October 2024

File Format
Name CRC-32
Ontology

CRC-32 is a family of 32-bit hash functions used to detect accidental data corruption.

The term CRC-32 by itself usually means the CRC-32/ISO-HDLC (IEEE) algorithm.

Refer to the CRC article for more information.

Contents

[edit] Specific algorithms

Selected CRC-32 algorithms are listed here. The names are from the CRC RevEng Catalogue, when possible.

[edit] CRC-32/ISO-HDLC

Also referred to as ISO 3309, ITU-T V.42, CRC-32-IEEE, and many other names.

The CRC of ASCII "123456789" is 0xcbf43926.

Examples of formats that use CRC-32/ISO-HDLC: ZIP, PNG, Gzip, ARJ.

[edit] CRC-32/JAMCRC

Equivalent to CRC-32/ISO-HDLC, but with the final CRC's bits inverted (or, rather, not inverted -- ISO-HDLC is the one that inverts the bits).

The CRC of ASCII "123456789" is 0x340bc6d9.

Examples of formats that use CRC-32/JAMCRC: EDI Install archive and Eschalon Setup archive, Brik.

[edit] CRC-32/CKSUM

The default algorithm of the traditional Unix/POSIX "cksum" utility. Note that the utility uses a high-level algorithm that preprocesses the input data.

The (high-level) CRC of ASCII "123456789" is 0x377a6011.

[edit] CRC-32/MPEG-2

[edit] Others

Other members of the CRC-32 family include CRC-32Q, CRC-32C (Castagnoli), and CRC-32K (Koopman).

[edit] Links

See also CRC#Links.

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox