CRC-24 Hash

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

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

What is CRC-24?

The **CRC-24** (Cyclic Redundancy Check with 24-bit output) is a lightweight error-detection algorithm derived from the broader **CRC family**, originally standardized in the 1960s for data integrity verification in serial communications and storage systems. Structurally, it employs a **polynomial-based approach**, typically using a fixed generator polynomial (e.g., `0x1864CFB` for CRC-24/Auto) to compute a checksum over a data stream via bitwise XOR operations and modular arithmetic. Unlike cryptographic hashes, CRC-24 lacks cryptographic properties—it is not designed for security but for **error detection in noisy channels** (e.g., Ethernet frames, SD cards, or RAID parity checks). Its 24-bit output provides a balance between computational efficiency and collision resistance for its intended use cases, though it is not collision-resistant by modern cryptographic standards. The algorithm processes data in fixed-width blocks (e.g., 8-bit bytes) using a sliding window technique, appending the checksum to the original data for verification.

CRC-24 is vulnerable to cracking due to its **lack of cryptographic design principles**, making it susceptible to **preimage and collision attacks** despite its 24-bit output. The algorithm’s **deterministic nature**—combined with **no salting or keying**—allows attackers to exploit **birthday bound collisions** (with ~16-bit security) or **brute-force preimages** given sufficient computational resources. Modern **GPU/ASIC acceleration** (e.g., via FPGA-optimized implementations) can compute CRC-24 evaluations at **gigahertz speeds**, enabling practical collision generation or hash inversion. Additionally, its **linear structure** (due to XOR operations) permits **mathematical optimizations** (e.g., lookup tables or pipelined hardware), further reducing effective security margins. While not directly broken, its **non-uniform distribution of outputs** and **predictable patterns** make it unsuitable for security-sensitive applications, where even 24-bit hashes are considered insecure for integrity verification.

Identifying CRC-24 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-24, security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack CRC-24

If you need to recover the plaintext password for a CRC-24 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.