CRC-64 Hash

Technical details, regex signatures, and cracking commands for the CRC-64 algorithm.

Regex Identification Signature:
^[a-f0-9]{16}$
Not supported natively by Hashcat
Not supported natively by John the Ripper
← Back to Hash Identifier

What is CRC-64?

CRC-64, or Cyclic Redundancy Check with a 64-bit output, is a family of error-detection algorithms derived from polynomial division in finite fields, originally formalized in the 1950s by W. Wesley Peterson for error correction in digital communications. Unlike traditional CRC variants (e.g., CRC-32), CRC-64 extends the bit-width to 64 bits by leveraging higher-degree polynomials (e.g., the *CRC-64/ECMA* variant uses the generator polynomial *x⁶⁴ + x⁴ + x³ + x + 1*), enabling detection of up to 64-bit burst errors in data streams. Structurally, it operates via bitwise XOR operations and modular arithmetic in GF(2), where the input message is divided by the polynomial, producing a remainder (the checksum) appended to the data. While historically employed in storage protocols (e.g., SCSI, Fibre Channel) and network protocols (e.g., iSCSI) for integrity verification, CRC-64’s primary use-case today lies in high-reliability applications like RAID systems and tape backup verification, where its extended bit-length mitigates false positives compared to shorter CRCs. However, its design prioritizes efficiency over cryptographic security, lacking features like salting or keyed variations.

CRC-64’s vulnerability stems from its deterministic, non-keyed nature and inherent collision susceptibility. The algorithm’s linear feedback structure enables brute-force attacks via exhaustive search, as the 64-bit output space (2⁶⁴ possible values) is computationally tractable with modern hardware—GPU clusters can achieve collision searches in hours for weak variants. Unlike cryptographic hashes (e.g., SHA-3), CRC-64 lacks salting or iterative hashing, making it susceptible to rainbow table attacks if repurposed for authentication. Furthermore, its polynomial-based design allows precomputation of collision pairs via algebraic methods, exploiting the structure’s predictability. Optimizations like parallelized bit-slicing (e.g., using SIMD instructions) accelerate cracking, while the absence of avalanche effects (small input changes yielding vastly different outputs) exacerbates vulnerability. These flaws render CRC-64 unsuitable for security-critical applications, despite its robustness for error detection.

Identifying CRC-64 Hashes

Identifying a hash blindly is often difficult because multiple algorithms can output strings of the exact same length. For example, a standard 32-character hexadecimal string could be MD5, NTLM, MD4, or LM. To definitively identify CRC-64, security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack CRC-64

If you need to recover the plaintext password for a CRC-64 hash during a penetration test or forensics investigation, you must supply the correct module ID to your cracking software. Use the exact commands provided at the top of this page to target the hash successfully.