Skip to main content
CRC Calc

CRC-32 / ISCSI

Width32-bitRefInYesRefOutYes

Need custom parameters? Open in full calculator

Standard test string

Result

0xE3069283

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

0x000000000xF26B83030xE13B70F70x1350F3F40xC79A971F0x35F1141C0x26A1E7E80xD4CA64EB0x8AD958CF0x78B2DBCC0x6BE228380x9989AB3B0x4D43CFD00xBF284CD30xAC78BF270x5E133C24
0x105EC76F0xE235446C0xF165B7980x030E349B0xD7C450700x25AFD3730x36FF20870xC494A3840x9A879FA00x68EC1CA30x7BBCEF570x89D76C540x5D1D08BF0xAF768BBC0xBC2678480x4E4DFB4B
0x20BD8EDE0xD2D60DDD0xC186FE290x33ED7D2A0xE72719C10x154C9AC20x061C69360xF477EA350xAA64D6110x580F55120x4B5FA6E60xB93425E50x6DFE410E0x9F95C20D0x8CC531F90x7EAEB2FA
0x30E349B10xC288CAB20xD1D839460x23B3BA450xF779DEAE0x05125DAD0x1642AE590xE4292D5A0xBA3A117E0x4851927D0x5B0161890xA96AE28A0x7DA086610x8FCB05620x9C9BF6960x6EF07595
0x417B1DBC0xB3109EBF0xA0406D4B0x522BEE480x86E18AA30x748A09A00x67DAFA540x95B179570xCBA245730x39C9C6700x2A9935840xD8F2B6870x0C38D26C0xFE53516F0xED03A29B0x1F682198
0x5125DAD30xA34E59D00xB01EAA240x427529270x96BF4DCC0x64D4CECF0x77843D3B0x85EFBE380xDBFC821C0x2997011F0x3AC7F2EB0xC8AC71E80x1C6615030xEE0D96000xFD5D65F40x0F36E6F7
0x61C693620x93AD10610x80FDE3950x729660960xA65C047D0x5437877E0x4767748A0xB50CF7890xEB1FCBAD0x197448AE0x0A24BB5A0xF84F38590x2C855CB20xDEEEDFB10xCDBE2C450x3FD5AF46
0x7198540D0x83F3D70E0x90A324FA0x62C8A7F90xB602C3120x446940110x5739B3E50xA55230E60xFB410CC20x092A8FC10x1A7A7C350xE811FF360x3CDB9BDD0xCEB018DE0xDDE0EB2A0x2F8B6829
0x82F63B780x709DB87B0x63CD4B8F0x91A6C88C0x456CAC670xB7072F640xA457DC900x563C5F930x082F63B70xFA44E0B40xE91413400x1B7F90430xCFB5F4A80x3DDE77AB0x2E8E845F0xDCE5075C
0x92A8FC170x60C37F140x73938CE00x81F80FE30x55326B080xA759E80B0xB4091BFF0x466298FC0x1871A4D80xEA1A27DB0xF94AD42F0x0B21572C0xDFEB33C70x2D80B0C40x3ED043300xCCBBC033
0xA24BB5A60x502036A50x4370C5510xB11B46520x65D122B90x97BAA1BA0x84EA524E0x7681D14D0x2892ED690xDAF96E6A0xC9A99D9E0x3BC21E9D0xEF087A760x1D63F9750x0E330A810xFC588982
0xB21572C90x407EF1CA0x532E023E0xA145813D0x758FE5D60x87E466D50x94B495210x66DF16220x38CC2A060xCAA7A9050xD9F75AF10x2B9CD9F20xFF56BD190x0D3D3E1A0x1E6DCDEE0xEC064EED
0xC38D26C40x31E6A5C70x22B656330xD0DDD5300x0417B1DB0xF67C32D80xE52CC12C0x1747422F0x49547E0B0xBB3FFD080xA86F0EFC0x5A048DFF0x8ECEE9140x7CA56A170x6FF599E30x9D9E1AE0
0xD3D3E1AB0x21B862A80x32E8915C0xC083125F0x144976B40xE622F5B70xF57206430x071985400x590AB9640xAB613A670xB831C9930x4A5A4A900x9E902E7B0x6CFBAD780x7FAB5E8C0x8DC0DD8F
0xE330A81A0x115B2B190x020BD8ED0xF0605BEE0x24AA3F050xD6C1BC060xC5914FF20x37FACCF10x69E9F0D50x9B8273D60x88D280220x7AB903210xAE7367CA0x5C18E4C90x4F48173D0xBD23943E
0xF36E6F750x0105EC760x12551F820xE03E9C810x34F4F86A0xC69F7B690xD5CF889D0x27A40B9E0x79B737BA0x8BDCB4B90x988C474D0x6AE7C44E0xBE2DA0A50x4C4623A60x5F16D0520xAD7D5351

CRC Source Code

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

const uint32_t crc_table[256] = {
  0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB, 
  0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24, 
  0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384, 
  0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B, 
  0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35, 
  0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA, 
  0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A, 
  0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595, 
  0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957, 
  0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198, 
  0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38, 
  0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7, 
  0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789, 
  0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46, 
  0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6, 
  0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829, 
  0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93, 
  0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C, 
  0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC, 
  0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033, 
  0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D, 
  0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982, 
  0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622, 
  0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED, 
  0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F, 
  0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0, 
  0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540, 
  0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F, 
  0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1, 
  0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E, 
  0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E, 
  0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351
};

uint32_t calculate_crc(const uint8_t *data, size_t length) {
    uint32_t crc = 0xFFFFFFFF;
    for (size_t i = 0; i < length; i++) {
        #if 1
        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/ISCSI

CRC32C uses the Castagnoli polynomial and is common in storage, databases, and network protocols.

CRC-32/ISCSI is a 32-bit CRC model defined by polynomial 0x1EDC6F41, an initial register value of 0xFFFFFFFF, and final XOR 0xFFFFFFFF. It processes reflected input bytes and reports a reflected output.

Documented application context for this model includes iSCSI, SCTP, Storage systems. 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
0xE3069283
Residue
0xB798B438

Model characteristics

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

Bit order
Reflected
Register start
0xFFFFFFFF
Final XOR
0xFFFFFFFF
Published check
0xE3069283

Implementation checks for CRC-32/ISCSI

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

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

Complete CRC-32/ISCSI parameters

CRC parameter guide
ParameterValueMeaningReference
Width32 bitsCRC register and result widthRead guide
Poly0x1EDC6F41Generator polynomial without the leading termRead guide
Init0xFFFFFFFFInitial CRC register valueRead guide
RefInYesReflect each input byte before processingRead guide
RefOutYesReflect the register before XOR OutRead guide
XorOut0xFFFFFFFFFinal value XORed with the CRC registerRead guide
Check0xE3069283CRC of ASCII “123456789”Read guide
Residue0xB798B438Expected residue after appending a valid CRCRead guide
AliasesCRC-32/BASE91-CCRC-32/CASTAGNOLICRC-32/INTERLAKENCRC-32CCRC-32/NVMECastagnoli

Where CRC-32/ISCSI is used

  • 01iSCSI
  • 02SCTP
  • 03Storage systems

CRC-32/ISCSI FAQ

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

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

What polynomial does CRC-32/ISCSI use?

CRC-32/ISCSI uses the 32-bit polynomial 0x1EDC6F41.

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

For CRC-32/ISCSI, RefIn is Yes and RefOut is Yes.

What is CRC-32/ISCSI commonly confused with?

The closest published model by parameter overlap is CRC-32/AUTOSAR, differing from CRC-32/ISCSI in polynomial.