Skip to main content
CRC Calc

CRC-32 / CKSUM

Width32-bitRefInNoRefOutNo

Need custom parameters? Open in full calculator

Standard test string

Result

0x765E7680

Similar CRC Algorithms

Result is calculated from the current input. Check is the published verification value for the standard input 123456789. Click another algorithm to view its detail page.

CRC Lookup Table

0x000000000x04C11DB70x09823B6E0x0D4326D90x130476DC0x17C56B6B0x1A864DB20x1E4750050x2608EDB80x22C9F00F0x2F8AD6D60x2B4BCB610x350C9B640x31CD86D30x3C8EA00A0x384FBDBD
0x4C11DB700x48D0C6C70x4593E01E0x4152FDA90x5F15ADAC0x5BD4B01B0x569796C20x52568B750x6A1936C80x6ED82B7F0x639B0DA60x675A10110x791D40140x7DDC5DA30x709F7B7A0x745E66CD
0x9823B6E00x9CE2AB570x91A18D8E0x956090390x8B27C03C0x8FE6DD8B0x82A5FB520x8664E6E50xBE2B5B580xBAEA46EF0xB7A960360xB3687D810xAD2F2D840xA9EE30330xA4AD16EA0xA06C0B5D
0xD4326D900xD0F370270xDDB056FE0xD9714B490xC7361B4C0xC3F706FB0xCEB420220xCA753D950xF23A80280xF6FB9D9F0xFBB8BB460xFF79A6F10xE13EF6F40xE5FFEB430xE8BCCD9A0xEC7DD02D
0x348670770x30476DC00x3D044B190x39C556AE0x278206AB0x23431B1C0x2E003DC50x2AC120720x128E9DCF0x164F80780x1B0CA6A10x1FCDBB160x018AEB130x054BF6A40x0808D07D0x0CC9CDCA
0x7897AB070x7C56B6B00x711590690x75D48DDE0x6B93DDDB0x6F52C06C0x6211E6B50x66D0FB020x5E9F46BF0x5A5E5B080x571D7DD10x53DC60660x4D9B30630x495A2DD40x44190B0D0x40D816BA
0xACA5C6970xA864DB200xA527FDF90xA1E6E04E0xBFA1B04B0xBB60ADFC0xB6238B250xB2E296920x8AAD2B2F0x8E6C36980x832F10410x87EE0DF60x99A95DF30x9D6840440x902B669D0x94EA7B2A
0xE0B41DE70xE47500500xE93626890xEDF73B3E0xF3B06B3B0xF771768C0xFA3250550xFEF34DE20xC6BCF05F0xC27DEDE80xCF3ECB310xCBFFD6860xD5B886830xD1799B340xDC3ABDED0xD8FBA05A
0x690CE0EE0x6DCDFD590x608EDB800x644FC6370x7A0896320x7EC98B850x738AAD5C0x774BB0EB0x4F040D560x4BC510E10x468636380x42472B8F0x5C007B8A0x58C1663D0x558240E40x51435D53
0x251D3B9E0x21DC26290x2C9F00F00x285E1D470x36194D420x32D850F50x3F9B762C0x3B5A6B9B0x0315D6260x07D4CB910x0A97ED480x0E56F0FF0x1011A0FA0x14D0BD4D0x19939B940x1D528623
0xF12F560E0xF5EE4BB90xF8AD6D600xFC6C70D70xE22B20D20xE6EA3D650xEBA91BBC0xEF68060B0xD727BBB60xD3E6A6010xDEA580D80xDA649D6F0xC423CD6A0xC0E2D0DD0xCDA1F6040xC960EBB3
0xBD3E8D7E0xB9FF90C90xB4BCB6100xB07DABA70xAE3AFBA20xAAFBE6150xA7B8C0CC0xA379DD7B0x9B3660C60x9FF77D710x92B45BA80x9675461F0x8832161A0x8CF30BAD0x81B02D740x857130C3
0x5D8A90990x594B8D2E0x5408ABF70x50C9B6400x4E8EE6450x4A4FFBF20x470CDD2B0x43CDC09C0x7B827D210x7F4360960x7200464F0x76C15BF80x68860BFD0x6C47164A0x610430930x65C52D24
0x119B4BE90x155A565E0x181970870x1CD86D300x029F3D350x065E20820x0B1D065B0x0FDC1BEC0x3793A6510x3352BBE60x3E119D3F0x3AD080880x2497D08D0x2056CD3A0x2D15EBE30x29D4F654
0xC5A926790xC1683BCE0xCC2B1D170xC8EA00A00xD6AD50A50xD26C4D120xDF2F6BCB0xDBEE767C0xE3A1CBC10xE760D6760xEA23F0AF0xEEE2ED180xF0A5BD1D0xF464A0AA0xF92786730xFDE69BC4
0x89B8FD090x8D79E0BE0x803AC6670x84FBDBD00x9ABC8BD50x9E7D96620x933EB0BB0x97FFAD0C0xAFB010B10xAB710D060xA6322BDF0xA2F336680xBCB4666D0xB8757BDA0xB5365D030xB1F740B4

CRC Source Code

/* 
 * Model: CRC-32 / CKSUM (32-bit)
 * Poly: 0x04C11DB7, Init: 0x00000000, XorOut: 0xFFFFFFFF
 * CRC Table C Source Code & Lookup Table Generator
 */
#include <stdint.h>
#include <stddef.h>

const uint32_t crc_table[256] = {
  0x00000000, 0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B, 0x1A864DB2, 0x1E475005, 
  0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6, 0x2B4BCB61, 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD, 
  0x4C11DB70, 0x48D0C6C7, 0x4593E01E, 0x4152FDA9, 0x5F15ADAC, 0x5BD4B01B, 0x569796C2, 0x52568B75, 
  0x6A1936C8, 0x6ED82B7F, 0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, 0x709F7B7A, 0x745E66CD, 
  0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039, 0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5, 
  0xBE2B5B58, 0xBAEA46EF, 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033, 0xA4AD16EA, 0xA06C0B5D, 
  0xD4326D90, 0xD0F37027, 0xDDB056FE, 0xD9714B49, 0xC7361B4C, 0xC3F706FB, 0xCEB42022, 0xCA753D95, 
  0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, 0xE13EF6F4, 0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D, 
  0x34867077, 0x30476DC0, 0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5, 0x2AC12072, 
  0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16, 0x018AEB13, 0x054BF6A4, 0x0808D07D, 0x0CC9CDCA, 
  0x7897AB07, 0x7C56B6B0, 0x71159069, 0x75D48DDE, 0x6B93DDDB, 0x6F52C06C, 0x6211E6B5, 0x66D0FB02, 
  0x5E9F46BF, 0x5A5E5B08, 0x571D7DD1, 0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA, 
  0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B, 0xBB60ADFC, 0xB6238B25, 0xB2E29692, 
  0x8AAD2B2F, 0x8E6C3698, 0x832F1041, 0x87EE0DF6, 0x99A95DF3, 0x9D684044, 0x902B669D, 0x94EA7B2A, 
  0xE0B41DE7, 0xE4750050, 0xE9362689, 0xEDF73B3E, 0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2, 
  0xC6BCF05F, 0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34, 0xDC3ABDED, 0xD8FBA05A, 
  0x690CE0EE, 0x6DCDFD59, 0x608EDB80, 0x644FC637, 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB, 
  0x4F040D56, 0x4BC510E1, 0x46863638, 0x42472B8F, 0x5C007B8A, 0x58C1663D, 0x558240E4, 0x51435D53, 
  0x251D3B9E, 0x21DC2629, 0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, 0x3F9B762C, 0x3B5A6B9B, 
  0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF, 0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623, 
  0xF12F560E, 0xF5EE4BB9, 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65, 0xEBA91BBC, 0xEF68060B, 
  0xD727BBB6, 0xD3E6A601, 0xDEA580D8, 0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, 0xCDA1F604, 0xC960EBB3, 
  0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, 0xAE3AFBA2, 0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B, 
  0x9B3660C6, 0x9FF77D71, 0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74, 0x857130C3, 
  0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640, 0x4E8EE645, 0x4A4FFBF2, 0x470CDD2B, 0x43CDC09C, 
  0x7B827D21, 0x7F436096, 0x7200464F, 0x76C15BF8, 0x68860BFD, 0x6C47164A, 0x61043093, 0x65C52D24, 
  0x119B4BE9, 0x155A565E, 0x18197087, 0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC, 
  0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D, 0x2056CD3A, 0x2D15EBE3, 0x29D4F654, 
  0xC5A92679, 0xC1683BCE, 0xCC2B1D17, 0xC8EA00A0, 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB, 0xDBEE767C, 
  0xE3A1CBC1, 0xE760D676, 0xEA23F0AF, 0xEEE2ED18, 0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4, 
  0x89B8FD09, 0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662, 0x933EB0BB, 0x97FFAD0C, 
  0xAFB010B1, 0xAB710D06, 0xA6322BDF, 0xA2F33668, 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4
};

uint32_t calculate_crc(const uint8_t *data, size_t length) {
    uint32_t crc = 0x00000000;
    for (size_t i = 0; i < length; i++) {
        #if 0
        uint8_t idx = (uint8_t)(crc ^ data[i]);
        crc = (crc >> 8) ^ crc_table[idx];
        #else
        uint8_t idx = (uint8_t)((crc >> 24) ^ data[i]);
        crc = (crc << 8) ^ crc_table[idx];
        #endif
    }
    return crc ^ 0xFFFFFFFF;
}

About CRC-32/CKSUM

CRC-32/CKSUM is the model used by the POSIX cksum utility.

CRC-32/CKSUM is a 32-bit CRC model defined by polynomial 0x04C11DB7, an initial register value of 0x00000000, and final XOR 0xFFFFFFFF. It uses normal, non-reflected input and output processing.

Documented application context for this model includes POSIX cksum, Unix systems, File integrity. The calculator above applies this exact parameter set to the current input; the published Check value below is instead the fixed verification result for ASCII 123456789.

Standard test vector

CRC implementations are commonly verified with the ASCII input 123456789.

Input format
ASCII
Input
123456789
Expected CRC
0x765E7680
Residue
0xC704DD7B

Model characteristics

A model is identified by its complete parameter set, not its polynomial alone.

Bit order
Normal
Register start
0x00000000
Final XOR
0xFFFFFFFF
Published check
0x765E7680

Implementation checks for CRC-32/CKSUM

  • Use a 32-bit register and polynomial 0x04C11DB7.
  • Initialize the register to 0x00000000 and use XorOut 0xFFFFFFFF exactly as listed; changing either value defines a different model.
  • Verify the implementation with ASCII “123456789”; the expected result is 0x765E7680.

Continue with the main calculator, browse the algorithm catalog, compare models in the Algorithm Reference section, or generate a lookup table.

Complete CRC-32/CKSUM parameters

CRC parameter guide
ParameterValueMeaningReference
Width32 bitsCRC register and result widthRead guide
Poly0x04C11DB7Generator polynomial without the leading termRead guide
Init0x00000000Initial CRC register valueRead guide
RefInNoReflect each input byte before processingRead guide
RefOutNoReflect the register before XOR OutRead guide
XorOut0xFFFFFFFFFinal value XORed with the CRC registerRead guide
Check0x765E7680CRC of ASCII “123456789”Read guide
Residue0xC704DD7BExpected residue after appending a valid CRCRead guide
AliasesCKSUMCRC-32/POSIXPOSIX cksum

Where CRC-32/CKSUM is used

  • 01POSIX cksum
  • 02Unix systems
  • 03File integrity

CRC-32/CKSUM FAQ

What is the check value for CRC-32/CKSUM?

For the standard ASCII test input 123456789, the check value of CRC-32/CKSUM is 0x765E7680.

What polynomial does CRC-32/CKSUM use?

CRC-32/CKSUM uses the 32-bit polynomial 0x04C11DB7.

Does CRC-32/CKSUM use reflected input and output?

For CRC-32/CKSUM, RefIn is No and RefOut is No.

What is CRC-32/CKSUM commonly confused with?

CRC-32/BZIP2 uses the same polynomial (0x04C11DB7), which is the usual source of mix-ups — matching the polynomial alone does not reproduce CRC-32/CKSUM. The two models differ in initial value, so a port from one to the other needs those fields checked explicitly, not just the poly.