About this CRC-64 calculator
A CRC-64 is a 64-bit cyclic redundancy check, a checksum that detects accidental changes to data far more reliably than shorter CRCs, which makes it popular for large files, archives, and databases. Several variants exist, and they give different results for the same input, so you have to pick the one your system uses. ECMA-182 uses the ECMA polynomial with no bit reflection; CRC-64/XZ, used by the xz and LZMA formats, reflects the bits and inverts the value before and after; GO-ISO is the ISO 3309 polynomial as used by Go’s hash/crc64 ISO table; and ISO 3309 here is the same polynomial without inversion. Text is read as UTF-8.
How to calculate a CRC-64
- Add your data. Type or paste text, open a text file, or press an example.
- Pick the variant. Choose ECMA-182, XZ, GO-ISO, or ISO 3309 to match the program you are checking against, and the hex letter case.
- Press Calculate CRC-64. Copy the checksum in hex, decimal, or binary, or compare all four variants at once.
Frequently asked questions
Why does my CRC-64 not match another tool?
Most likely a different variant. Check the results for all four variants; one usually matches. Also make sure both tools read the text the same way, including line breaks and trailing spaces.
What is the check value of a CRC variant?
It is the checksum of the ASCII text 123456789, used to verify implementations. ECMA-182 gives 6C40DF5F0B497347, XZ gives 995DC9BBDF1939FA, and GO-ISO gives B90956C775A41001.
Is CRC-64 better than CRC32?
It is much less likely to miss an error or produce the same value for two different inputs by chance, which matters for very large data sets. It is still not a security hash.
Can I use CRC-64 to detect tampering?
No. Anyone can change data and fix the CRC to match. Use a cryptographic hash such as SHA-256, or a signature, to detect deliberate changes.
Which programs use CRC-64?
The xz and 7-Zip LZMA formats use CRC-64/XZ, Go offers ISO and ECMA tables in hash/crc64, and many databases and storage systems use CRC-64 to check blocks of data.