CRC-64 Checksum Calculator

Compute a 64-bit CRC for large data integrity checks

Free CRC-64 checksum calculator using the ECMA-182 polynomial (0x42F0E1EBA9EA3693) on text or raw hex bytes, with exact 64-bit BigInt math, in hex and decimal. Runs entirely in your browser; nothing is uploaded. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Which CRC-64 variant does this use?

It uses CRC-64/ECMA-182: polynomial 0x42F0E1EBA9EA3693, initial value 0, no input or output reflection, and no final XOR. This is the variant standardised by ECMA-182 and used for tape and large-file integrity.

This tool computes a 64-bit CRC checksum of any text or raw hex bytes and shows it in hexadecimal and unsigned decimal, updating live. CRC-64 is used where a 32-bit CRC’s collision space is too small — large file archives, tape formats, and content-addressed stores.

How it works

CRC-64 computes the remainder of the input, treated as a polynomial over GF(2), divided by the 64-bit generator polynomial 0x42F0E1EBA9EA3693 (ECMA-182). This implementation precomputes a 256-entry table in the most-significant-bit-first direction, then for each byte does crc = (crc << 8) XOR table[(crc >> 56) XOR byte], starting from an initial value of 0 with no final XOR. Because the values exceed JavaScript’s safe-integer range, all arithmetic is done with BigInt so the 64-bit result is exact.

Why 64 bits instead of 32?

A CRC-32 produces values in a space of about 4.3 billion possible checksums. For everyday file transfers that is usually sufficient, because the probability of two randomly different files producing the same CRC-32 is roughly 1 in 4 billion. But in large-scale systems — tape libraries, content-addressed storage, deduplication engines, or backup systems storing millions of objects — that collision probability becomes material. A CRC-64 expands the space to about 18 quintillion possible values, making accidental collisions negligible even across very large object counts.

That is why CRC-64 appears in contexts like:

  • ECMA-182 — the standard for tape and storage media integrity checking.
  • PostgreSQL — uses CRC-64 for write-ahead log (WAL) integrity.
  • Redis — uses a CRC-64 variant for cluster slot assignments.
  • Deduplication systems — content fingerprinting where even rare hash collisions cause data loss.

CRC-64 variants you may encounter

As with CRC-16 and CRC-32, the term “CRC-64” covers several incompatible variants:

VariantPolynomialInitReflectedCheck value (123456789)
CRC-64/ECMA-1820x42F0E1EBA9EA36930No0x6C40DF5F0B497347
CRC-64/XZ0x42F0E1EBA9EA3693all-onesYes0x995DC9BBDF1939FA
CRC-64/JONES0xAD93D23594C935A9all-onesYes0xE9C6D914C4B8D9CA

This calculator implements CRC-64/ECMA-182. The XZ variant — used by the xz compressor and adopted by several Linux tools — uses the same polynomial but reflects both input and output and starts from a different initial value. Always verify with the 123456789 check string before integrating a CRC-64 value into a production system.

BigInt and browser compatibility

JavaScript’s native number type cannot represent 64-bit integers exactly above 2^53. This tool uses the BigInt type throughout the CRC computation to guarantee a bitwise-accurate 64-bit result. BigInt is supported in all modern browsers released after 2018. If you see an error, your browser is likely very old. Everything runs locally — no data is uploaded.