Skip to main content
CRC Calc

CRC-64 / NVME

Width64-bitRefInYesRefOutYes

Need custom parameters? Open in full calculator

Standard test string

Result

0xAE8B14860A799888

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

0x00000000000000000x7F6EF0C8303589790xFEDDE190606B12F20x81B31158505E9B8B0xC962E5739841B68F0xB60C15BBA8743FF60x37BF04E3F82AA47D0x48D1F42BC81F2D040xA61CECB46814FE750xD9721C7C5821770C0x58C10D24087FEC870x27AFFDEC384A65FE0x6F7E09C7F05548FA0x1010F90FC060C1830x91A3E857903E5A080xEECD189FA00BD371
0x78E0FF3B88BE6F810x078E0FF3B88BE6F80x863D1EABE8D57D730xF953EE63D8E0F40A0xB1821A4810FFD90E0xCEECEA8020CA50770x4F5FFBD87094CBFC0x30310B1040A142850xDEFC138FE0AA91F40xA192E347D09F188D0x2021F21F80C183060x5F4F02D7B0F40A7F0x179EF6FC78EB277B0x68F0063448DEAE020xE943176C188035890x962DE7A428B5BCF0
0xF1C1FE77117CDF020x8EAF0EBF2149567B0x0F1C1FE77117CDF00x7072EF2F412244890x38A31B04893D698D0x47CDEBCCB908E0F40xC67EFA94E9567B7F0xB9100A5CD963F2060x57DD12C3796821770x28B3E20B495DA80E0xA900F353190333850xD66E039B2936BAFC0x9EBFF7B0E12997F80xE1D10778D11C1E810x606216208142850A0x1F0CE6E8B1770C73
0x8921014C99C2B0830xF64FF184A9F739FA0x77FCE0DCF9A9A2710x08921014C99C2B080x4043E43F0183060C0x3F2D14F731B68F750xBE9E05AF61E814FE0xC1F0F56751DD9D870x2F3DEDF8F1D64EF60x50531D30C1E3C78F0xD1E00C6891BD5C040xAE8EFCA0A188D57D0xE65F088B6997F8790x9931F84359A271000x1882E91B09FCEA8B0x67EC19D339C963F2
0xD75ADABD7A6E2D6F0xA8342A754A5BA4160x29873B2D1A053F9D0x56E9CBE52A30B6E40x1E383FCEE22F9BE00x6156CF06D21A12990xE0E5DE5E824489120x9F8B2E96B271006B0x71463609127AD31A0x0E28C6C1224F5A630x8F9BD7997211C1E80xF0F52751422448910xB824D37A8A3B65950xC74A23B2BA0EECEC0x46F932EAEA5077670x3997C222DA65FE1E
0xAFBA2586F2D042EE0xD0D4D54EC2E5CB970x5167C41692BB501C0x2E0934DEA28ED9650x66D8C0F56A91F4610x19B6303D5AA47D180x980521650AFAE6930xE76BD1AD3ACF6FEA0x09A6C9329AC4BC9B0x76C839FAAAF135E20xF77B28A2FAAFAE690x8815D86ACA9A27100xC0C42C4102850A140xBFAADC8932B0836D0x3E19CDD162EE18E60x41773D1952DB919F
0x269B24CA6B12F26D0x59F5D4025B277B140xD846C55A0B79E09F0xA72835923B4C69E60xEFF9C1B9F35344E20x90973171C366CD9B0x11242029933856100x6E4AD0E1A30DDF690x8087C87E03060C180xFFE938B6333385610x7E5A29EE636D1EEA0x0134D926535897930x49E52D0D9B47BA970x368BDDC5AB7233EE0xB738CC9DFB2CA8650xC8563C55CB19211C
0x5E7BDBF1E3AC9DEC0x21152B39D39914950xA0A63A6183C78F1E0xDFC8CAA9B3F206670x97193E827BED2B630xE877CE4A4BD8A21A0x69C4DF121B8639910x16AA2FDA2BB3B0E80xF86737458BB863990x8709C78DBB8DEAE00x06BAD6D5EBD3716B0x79D4261DDBE6F8120x3105D23613F9D5160x4E6B22FE23CC5C6F0xCFD833A67392C7E40xB0B6C36E43A74E9D
0x9A6C9329AC4BC9B50xE50263E19C7E40CC0x64B172B9CC20DB470x1BDF8271FC15523E0x530E765A340A7F3A0x2C608692043FF6430xADD397CA54616DC80xD2BD67026454E4B10x3C707F9DC45F37C00x431E8F55F46ABEB90xC2AD9E0DA43425320xBDC36EC59401AC4B0xF5129AEE5C1E814F0x8A7C6A266C2B08360x0BCF7B7E3C7593BD0x74A18BB60C401AC4
0xE28C6C1224F5A6340x9DE29CDA14C02F4D0x1C518D82449EB4C60x633F7D4A74AB3DBF0x2BEE8961BCB410BB0x548079A98C8199C20xD53368F1DCDF02490xAA5D9839ECEA8B300x449080A64CE158410x3BFE706E7CD4D1380xBA4D61362C8A4AB30xC52391FE1CBFC3CA0x8DF265D5D4A0EECE0xF29C951DE49567B70x732F8445B4CBFC3C0x0C41748D84FE7545
0x6BAD6D5EBD3716B70x14C39D968D029FCE0x95708CCEDD5C04450xEA1E7C06ED698D3C0xA2CF882D2576A0380xDDA178E5154329410x5C1269BD451DB2CA0x237C997575283BB30xCDB181EAD523E8C20xB2DF7122E51661BB0x336C607AB548FA300x4C0290B2857D73490x04D364994D625E4D0x7BBD94517D57D7340xFA0E85092D094CBF0x856075C11D3CC5C6
0x134D9265358979360x6C2362AD05BCF04F0xED9073F555E26BC40x92FE833D65D7E2BD0xDA2F7716ADC8CFB90xA54187DE9DFD46C00x24F29686CDA3DD4B0x5B9C664EFD9654320xB5517ED15D9D87430xCA3F8E196DA80E3A0x4B8C9F413DF695B10x34E26F890DC31CC80x7C339BA2C5DC31CC0x035D6B6AF5E9B8B50x82EE7A32A5B7233E0xFD808AFA9582AA47
0x4D364994D625E4DA0x3258B95CE6106DA30xB3EBA804B64EF6280xCC8558CC867B7F510x8454ACE74E6452550xFB3A5C2F7E51DB2C0x7A894D772E0F40A70x05E7BDBF1E3AC9DE0xEB2AA520BE311AAF0x944455E88E0493D60x15F744B0DE5A085D0x6A99B478EE6F81240x224840532670AC200x5D26B09B164525590xDC95A1C3461BBED20xA3FB510B762E37AB
0x35D6B6AF5E9B8B5B0x4AB846676EAE02220xCB0B573F3EF099A90xB465A7F70EC510D00xFCB453DCC6DA3DD40x83DAA314F6EFB4AD0x0269B24CA6B12F260x7D0742849684A65F0x93CA5A1B368F752E0xECA4AAD306BAFC570x6D17BB8B56E467DC0x12794B4366D1EEA50x5AA8BF68AECEC3A10x25C64FA09EFB4AD80xA4755EF8CEA5D1530xDB1BAE30FE90582A
0xBCF7B7E3C7593BD80xC399472BF76CB2A10x422A5673A732292A0x3D44A6BB9707A0530x759552905F188D570x0AFBA2586F2D042E0x8B48B3003F739FA50xF42643C80F4616DC0x1AEB5B57AF4DC5AD0x6585AB9F9F784CD40xE436BAC7CF26D75F0x9B584A0FFF135E260xD389BE24370C73220xACE74EEC0739FA5B0x2D545FB4576761D00x523AAF7C6752E8A9
0xC41748D84FE754590xBB79B8107FD2DD200x3ACAA9482F8C46AB0x45A459801FB9CFD20x0D75ADABD7A6E2D60x721B5D63E7936BAF0xF3A84C3BB7CDF0240x8CC6BCF387F8795D0x620BA46C27F3AA2C0x1D6554A417C623550x9CD645FC4798B8DE0xE3B8B53477AD31A70xAB69411FBFB21CA30xD407B1D78F8795DA0x55B4A08FDFD90E510x2ADA5047EFEC8728

CRC Source Code

/* 
 * Model: CRC-64 / NVME (64-bit)
 * Poly: 0xAD93D23594C93659, Init: 0xFFFFFFFFFFFFFFFF, XorOut: 0xFFFFFFFFFFFFFFFF
 * CRC Table C Source Code & Lookup Table Generator
 */
#include <stdint.h>
#include <stddef.h>

const uint64_t crc_table[256] = {
  0x0000000000000000, 0x7F6EF0C830358979, 0xFEDDE190606B12F2, 0x81B31158505E9B8B, 0xC962E5739841B68F, 0xB60C15BBA8743FF6, 0x37BF04E3F82AA47D, 0x48D1F42BC81F2D04, 
  0xA61CECB46814FE75, 0xD9721C7C5821770C, 0x58C10D24087FEC87, 0x27AFFDEC384A65FE, 0x6F7E09C7F05548FA, 0x1010F90FC060C183, 0x91A3E857903E5A08, 0xEECD189FA00BD371, 
  0x78E0FF3B88BE6F81, 0x078E0FF3B88BE6F8, 0x863D1EABE8D57D73, 0xF953EE63D8E0F40A, 0xB1821A4810FFD90E, 0xCEECEA8020CA5077, 0x4F5FFBD87094CBFC, 0x30310B1040A14285, 
  0xDEFC138FE0AA91F4, 0xA192E347D09F188D, 0x2021F21F80C18306, 0x5F4F02D7B0F40A7F, 0x179EF6FC78EB277B, 0x68F0063448DEAE02, 0xE943176C18803589, 0x962DE7A428B5BCF0, 
  0xF1C1FE77117CDF02, 0x8EAF0EBF2149567B, 0x0F1C1FE77117CDF0, 0x7072EF2F41224489, 0x38A31B04893D698D, 0x47CDEBCCB908E0F4, 0xC67EFA94E9567B7F, 0xB9100A5CD963F206, 
  0x57DD12C379682177, 0x28B3E20B495DA80E, 0xA900F35319033385, 0xD66E039B2936BAFC, 0x9EBFF7B0E12997F8, 0xE1D10778D11C1E81, 0x606216208142850A, 0x1F0CE6E8B1770C73, 
  0x8921014C99C2B083, 0xF64FF184A9F739FA, 0x77FCE0DCF9A9A271, 0x08921014C99C2B08, 0x4043E43F0183060C, 0x3F2D14F731B68F75, 0xBE9E05AF61E814FE, 0xC1F0F56751DD9D87, 
  0x2F3DEDF8F1D64EF6, 0x50531D30C1E3C78F, 0xD1E00C6891BD5C04, 0xAE8EFCA0A188D57D, 0xE65F088B6997F879, 0x9931F84359A27100, 0x1882E91B09FCEA8B, 0x67EC19D339C963F2, 
  0xD75ADABD7A6E2D6F, 0xA8342A754A5BA416, 0x29873B2D1A053F9D, 0x56E9CBE52A30B6E4, 0x1E383FCEE22F9BE0, 0x6156CF06D21A1299, 0xE0E5DE5E82448912, 0x9F8B2E96B271006B, 
  0x71463609127AD31A, 0x0E28C6C1224F5A63, 0x8F9BD7997211C1E8, 0xF0F5275142244891, 0xB824D37A8A3B6595, 0xC74A23B2BA0EECEC, 0x46F932EAEA507767, 0x3997C222DA65FE1E, 
  0xAFBA2586F2D042EE, 0xD0D4D54EC2E5CB97, 0x5167C41692BB501C, 0x2E0934DEA28ED965, 0x66D8C0F56A91F461, 0x19B6303D5AA47D18, 0x980521650AFAE693, 0xE76BD1AD3ACF6FEA, 
  0x09A6C9329AC4BC9B, 0x76C839FAAAF135E2, 0xF77B28A2FAAFAE69, 0x8815D86ACA9A2710, 0xC0C42C4102850A14, 0xBFAADC8932B0836D, 0x3E19CDD162EE18E6, 0x41773D1952DB919F, 
  0x269B24CA6B12F26D, 0x59F5D4025B277B14, 0xD846C55A0B79E09F, 0xA72835923B4C69E6, 0xEFF9C1B9F35344E2, 0x90973171C366CD9B, 0x1124202993385610, 0x6E4AD0E1A30DDF69, 
  0x8087C87E03060C18, 0xFFE938B633338561, 0x7E5A29EE636D1EEA, 0x0134D92653589793, 0x49E52D0D9B47BA97, 0x368BDDC5AB7233EE, 0xB738CC9DFB2CA865, 0xC8563C55CB19211C, 
  0x5E7BDBF1E3AC9DEC, 0x21152B39D3991495, 0xA0A63A6183C78F1E, 0xDFC8CAA9B3F20667, 0x97193E827BED2B63, 0xE877CE4A4BD8A21A, 0x69C4DF121B863991, 0x16AA2FDA2BB3B0E8, 
  0xF86737458BB86399, 0x8709C78DBB8DEAE0, 0x06BAD6D5EBD3716B, 0x79D4261DDBE6F812, 0x3105D23613F9D516, 0x4E6B22FE23CC5C6F, 0xCFD833A67392C7E4, 0xB0B6C36E43A74E9D, 
  0x9A6C9329AC4BC9B5, 0xE50263E19C7E40CC, 0x64B172B9CC20DB47, 0x1BDF8271FC15523E, 0x530E765A340A7F3A, 0x2C608692043FF643, 0xADD397CA54616DC8, 0xD2BD67026454E4B1, 
  0x3C707F9DC45F37C0, 0x431E8F55F46ABEB9, 0xC2AD9E0DA4342532, 0xBDC36EC59401AC4B, 0xF5129AEE5C1E814F, 0x8A7C6A266C2B0836, 0x0BCF7B7E3C7593BD, 0x74A18BB60C401AC4, 
  0xE28C6C1224F5A634, 0x9DE29CDA14C02F4D, 0x1C518D82449EB4C6, 0x633F7D4A74AB3DBF, 0x2BEE8961BCB410BB, 0x548079A98C8199C2, 0xD53368F1DCDF0249, 0xAA5D9839ECEA8B30, 
  0x449080A64CE15841, 0x3BFE706E7CD4D138, 0xBA4D61362C8A4AB3, 0xC52391FE1CBFC3CA, 0x8DF265D5D4A0EECE, 0xF29C951DE49567B7, 0x732F8445B4CBFC3C, 0x0C41748D84FE7545, 
  0x6BAD6D5EBD3716B7, 0x14C39D968D029FCE, 0x95708CCEDD5C0445, 0xEA1E7C06ED698D3C, 0xA2CF882D2576A038, 0xDDA178E515432941, 0x5C1269BD451DB2CA, 0x237C997575283BB3, 
  0xCDB181EAD523E8C2, 0xB2DF7122E51661BB, 0x336C607AB548FA30, 0x4C0290B2857D7349, 0x04D364994D625E4D, 0x7BBD94517D57D734, 0xFA0E85092D094CBF, 0x856075C11D3CC5C6, 
  0x134D926535897936, 0x6C2362AD05BCF04F, 0xED9073F555E26BC4, 0x92FE833D65D7E2BD, 0xDA2F7716ADC8CFB9, 0xA54187DE9DFD46C0, 0x24F29686CDA3DD4B, 0x5B9C664EFD965432, 
  0xB5517ED15D9D8743, 0xCA3F8E196DA80E3A, 0x4B8C9F413DF695B1, 0x34E26F890DC31CC8, 0x7C339BA2C5DC31CC, 0x035D6B6AF5E9B8B5, 0x82EE7A32A5B7233E, 0xFD808AFA9582AA47, 
  0x4D364994D625E4DA, 0x3258B95CE6106DA3, 0xB3EBA804B64EF628, 0xCC8558CC867B7F51, 0x8454ACE74E645255, 0xFB3A5C2F7E51DB2C, 0x7A894D772E0F40A7, 0x05E7BDBF1E3AC9DE, 
  0xEB2AA520BE311AAF, 0x944455E88E0493D6, 0x15F744B0DE5A085D, 0x6A99B478EE6F8124, 0x224840532670AC20, 0x5D26B09B16452559, 0xDC95A1C3461BBED2, 0xA3FB510B762E37AB, 
  0x35D6B6AF5E9B8B5B, 0x4AB846676EAE0222, 0xCB0B573F3EF099A9, 0xB465A7F70EC510D0, 0xFCB453DCC6DA3DD4, 0x83DAA314F6EFB4AD, 0x0269B24CA6B12F26, 0x7D0742849684A65F, 
  0x93CA5A1B368F752E, 0xECA4AAD306BAFC57, 0x6D17BB8B56E467DC, 0x12794B4366D1EEA5, 0x5AA8BF68AECEC3A1, 0x25C64FA09EFB4AD8, 0xA4755EF8CEA5D153, 0xDB1BAE30FE90582A, 
  0xBCF7B7E3C7593BD8, 0xC399472BF76CB2A1, 0x422A5673A732292A, 0x3D44A6BB9707A053, 0x759552905F188D57, 0x0AFBA2586F2D042E, 0x8B48B3003F739FA5, 0xF42643C80F4616DC, 
  0x1AEB5B57AF4DC5AD, 0x6585AB9F9F784CD4, 0xE436BAC7CF26D75F, 0x9B584A0FFF135E26, 0xD389BE24370C7322, 0xACE74EEC0739FA5B, 0x2D545FB4576761D0, 0x523AAF7C6752E8A9, 
  0xC41748D84FE75459, 0xBB79B8107FD2DD20, 0x3ACAA9482F8C46AB, 0x45A459801FB9CFD2, 0x0D75ADABD7A6E2D6, 0x721B5D63E7936BAF, 0xF3A84C3BB7CDF024, 0x8CC6BCF387F8795D, 
  0x620BA46C27F3AA2C, 0x1D6554A417C62355, 0x9CD645FC4798B8DE, 0xE3B8B53477AD31A7, 0xAB69411FBFB21CA3, 0xD407B1D78F8795DA, 0x55B4A08FDFD90E51, 0x2ADA5047EFEC8728
};

uint64_t calculate_crc(const uint8_t *data, size_t length) {
    uint64_t crc = 0xFFFFFFFFFFFFFFFF;
    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 >> 56) ^ data[i]);
        crc = (crc << 8) ^ crc_table[idx];
        #endif
    }
    return crc ^ 0xFFFFFFFFFFFFFFFF;
}

About CRC-64/NVME

CRC-64/NVME is the reflected 64-bit CRC used by the NVM Express storage specification.

CRC-64/NVME is a 64-bit CRC model defined by polynomial 0xAD93D23594C93659, an initial register value of 0xFFFFFFFFFFFFFFFF, and final XOR 0xFFFFFFFFFFFFFFFF. It processes reflected input bytes and reports a reflected output.

Documented application context for this model includes NVMe storage, SSD firmware, Block integrity checks. 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
0xAE8B14860A799888

Model characteristics

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

Bit order
Reflected
Register start
0xFFFFFFFFFFFFFFFF
Final XOR
0xFFFFFFFFFFFFFFFF
Published check
0xAE8B14860A799888

Implementation checks for CRC-64/NVME

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

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

Complete CRC-64/NVME parameters

CRC parameter guide
ParameterValueMeaningReference
Width64 bitsCRC register and result widthRead guide
Poly0xAD93D23594C93659Generator polynomial without the leading termRead guide
Init0xFFFFFFFFFFFFFFFFInitial CRC register valueRead guide
RefInYesReflect each input byte before processingRead guide
RefOutYesReflect the register before XOR OutRead guide
XorOut0xFFFFFFFFFFFFFFFFFinal value XORed with the CRC registerRead guide
Check0xAE8B14860A799888CRC of ASCII “123456789”Read guide
ResidueNot listedExpected residue after appending a valid CRCRead guide
AliasesCRC-64/NVME

Where CRC-64/NVME is used

  • 01NVMe storage
  • 02SSD firmware
  • 03Block integrity checks

CRC-64/NVME FAQ

What is the check value for CRC-64/NVME?

For the standard ASCII test input 123456789, the check value of CRC-64/NVME is 0xAE8B14860A799888.

What polynomial does CRC-64/NVME use?

CRC-64/NVME uses the 64-bit polynomial 0xAD93D23594C93659.

Does CRC-64/NVME use reflected input and output?

For CRC-64/NVME, RefIn is Yes and RefOut is Yes.

What is CRC-64/NVME commonly confused with?

The closest published model by parameter overlap is CRC-64/GO-ISO, differing from CRC-64/NVME in polynomial.