CRC-32 Calculator - Checksums for Text, Hex and Files

Computing a CRC-32 is trivial once you know which algorithm you mean, and surprisingly confusing if you do not, because two different questions get mixed up: how the arithmetic works, and what a checksum is actually for. The arithmetic here is the reflected, table-driven algorithm defined by ISO 3309 and ITU-T V.42, which returns a 32-bit value for any byte sequence you hand it. The purpose is much narrower than the word hash suggests. A CRC is an error-detecting code, not a security primitive, and it is built to do one job extremely cheaply: notice when data has been damaged in transit by noise, a failing disk sector, a truncated download or a copy that silently changed underneath you. This free CRC-32 calculator handles all three input shapes that come up in real work. You can type text and have it encoded as UTF-8 before hashing, paste raw hex bytes for binary payloads such as a firmware header or a network packet, or choose a file and have the checksum computed over its entire contents with no size limit that matters. The output format selector re-renders the same 32-bit number as hex, decimal, octal, 32-bit binary or base64, because the expected representation depends entirely on where the value is going: archive headers store it as hex, most scripting libraries print it as a decimal integer, and a few protocols carry the four raw bytes in a base64-wrapped field. A summary table below the output also reports the message length in bytes and a CRC-32b value, which is the same algorithm run over your bytes with one trailing zero byte appended. Everything is computed client-side by JavaScript on your own machine: your text and your file are never uploaded, never logged and never stored.

CRC-32 Checksum Calculator

Encoded as UTF-8 before hashing. 6 bytes

0xFF55531A
Message length6 bytes
CRC-320xFF55531A
CRC-32b (trailing zero byte)0x2F9F43A4

CRC-32 detects accidental corruption in zip archives, gzip streams, PNG chunks and Ethernet frames. It is not a cryptographic hash: it is linear, trivially forged, and must never be used for integrity against an adversary.

What Is

A checksum is a short fixed-length summary of a longer message, computed so that any accidental change to the message is overwhelmingly likely to change the summary too. The idea is older than the personal computer. IBM built tabulating machines that read punched cards, and operators discovered that data moved between machines was now and then silently corrupted by a mis-punched column, a bent card or a worn reader. The engineering answer was to travel alongside the data with a redundant arithmetic value that the receiving machine recomputed and compared; if the two agreed the transfer was assumed intact, and if they disagreed the machine requested a retransmission. The modern descendants of that idea are cyclic redundancy checks. A CRC treats the message as a polynomial over GF(2), the field where adding and subtracting are both the exclusive-or operation, and computes a remainder when that polynomial is divided by a fixed generator polynomial. CRC-32 uses the generator 0x04C11DB7, and because the bit-reflected formulation is much cheaper to implement in both hardware and software than the straight one, real code works with the reversed constant 0xEDB88320 instead.

The usual implementation precomputes a 256-entry table by running that reversal loop over every possible byte, then processes the message one byte at a time with a single lookup and one shift: crc = table[(crc XOR byte) AND 0xFF] XOR (crc >> 8). That table is why a megabyte hashes in a couple of milliseconds, and building it from the definition rather than pasting a magic array guarantees the code implements what it claims to. The register is seeded with 0xFFFFFFFF before the first byte and the result is XORed with 0xFFFFFFFF on the way out, a technique called augmentation. Neither XOR is decoration. With a zero seed, leading zero bytes leave the register untouched, so the message 00 00 41 and the message 41 produce the identical value; seeding with all ones forces those bytes to be absorbed, which is what makes a run of zeros detectable. The final XOR guarantees that the message plus its own CRC, appended in little-endian order, leaves the fixed residue 0x2144DF1C that a receiver checks for, and it is why the CRC of an empty message is the tidy 0x00000000 rather than a run of ones. CRC-32 and CRC-32b are the same algorithm with different framing: the variant this tool reports appends one trailing 0x00 byte before hashing, which is the convention some protocols use to distinguish a payload from its terminator, while other sources use the name for the BZIP2 variant that appends four zero bytes, so always state which framing you mean.

In real use, CRC-32 is the integrity field inside every ZIP entry, inside the trailer of every gzip and zlib stream, inside every individual chunk of a PNG file, inside MPEG-2 transport streams, and inside the Frame Check Sequence of every Ethernet frame, where it is abbreviated FCS. What CRC-32 is emphatically not is a cryptographic hash. It is a linear function over GF(2): XORing the same difference into two messages of equal length changes their CRCs by the same amount, which means an attacker who knows one message and its checksum can derive a four-byte patch that gives any checksum they like. It is also only 32 bits wide, so by the birthday paradox two distinct messages sharing a CRC appear after roughly the square root of 2^32, on the order of 65536 messages, and every incidental single-bit error you care about catching is caught. Use it for accidental corruption, never for integrity against someone who is trying.

How to Use

  1. Open the CRC-32 Calculator in your browser. The checksum is computed locally in JavaScript, so nothing you type or select is uploaded to any server.
  2. Choose an input mode with the three buttons at the top: Text for a string, Hex bytes for raw binary, or File to checksum an entire document.
  3. In Text mode, type or paste into the Input text box. The string is encoded as UTF-8 first, so accented characters and emoji count for more bytes than they look, and the byte count updates live underneath.
  4. In Hex mode, paste pairs of hex digits such as 48 65 6c 6c 6f. Spaces, commas and 0x prefixes are stripped automatically, an odd digit count is rejected, and any non-hex character raises an error instead of being silently ignored.
  5. In File mode, pick a file with the Choose a file control. The calculator reads it with the browser File API and reports the size on disk alongside the number of bytes actually hashed.
  6. Pick the representation you need from the Output format menu: Hex, Decimal, Octal, Binary or Base64. The CRC-32 result box re-renders instantly in whichever form is selected.
  7. Read the summary table for the exact message length in bytes, the CRC-32 value, and the CRC-32b value computed with a single trailing zero byte appended for comparison.
  8. Compare the value against a published checksum to confirm a download, an upload or a transferred payload arrived intact.

Examples

Input: Text mode, the string CRC-32

Process:

6 UTF-8 bytes 43 52 43 2D 33 32 through the table-driven loop

Result: CRC-32 = 0xFF55531A, CRC-32b with a trailing zero byte = 0x2F9F43A4

Input: Text mode, the string 123456789

Process:

The ISO 3309 and ITU-T V.42 check value for the CRC-32/BZIP2 variant

Result: 0xCBF43926 — if your implementation disagrees, the parameters are wrong

Input: Hex mode, the bytes 48 65 6c 6c 6f

Process:

Five raw bytes meaning Hello, entered as hex rather than text

Result: 0xF7D18982 — different from hashing the word Hello as text would give

Input: File mode, an empty or zero-length file

Process:

The loop never executes, so the seed passes straight through the final XOR

Result: 0x00000000, which is why the empty message is easy to recognise

Related Searches

People also search for: crc32 calculator, crc32 checksum, calculate crc32, checksum generator, file crc32, crc32 online.

crc32 calculatorcrc32 checksumcalculate crc32checksum generatorfile crc32crc32 onlinecrc32 hexcrc32 of textcrc32 of bytescrc32biso 3309itu-t v.420xedb88320verify file integrityzip crc32gzip checksumpng chunk crcethernet fcscrc32 base64crc32 vs sha256

Frequently Asked Questions

What is CRC-32 actually used for in real software?

CRC-32 is used wherever a cheap, near-certain check for accidental corruption is worth more than a security guarantee. Every ZIP archive stores one per entry in its central directory, and unzip verifies it on extraction so a truncated or bit-rotted file is reported instead of silently producing garbage. gzip and zlib append a CRC-32 to their compressed streams, which is why a corrupted .gz file produces a checksum error rather than a mysterious decompression error. PNG stores a CRC-32 in every single chunk, both to validate each chunk independently and to let a decoder stop at the first bad chunk. MPEG-2 transport streams carry one per packet, and the Ethernet frame check sequence is a CRC-32, computed in hardware on every frame that crosses a switch. In each case the threat model is the same: noise, hardware decay, partial writes and mismatched versions, not a motivated attacker.

Is CRC-32 a cryptographic hash? Can I use it for passwords?

No, and using it for passwords or for authenticating a download from an untrusted source would be a serious mistake. A CRC is a linear function over the field GF(2), which means XORing the same difference into two messages produces the same difference in their checksums. Anyone who knows one message and its checksum can therefore construct a different message, differing in as few as four bytes, that carries any checksum they choose. That is a forgery requiring no cleverness and no search. CRC-32 is also only 32 bits wide, so an attacker can precompute a collision in a few seconds of GPU time for a chosen plaintext. It has no key, no salt, no work factor and no avalanche behaviour, so it provides none of the one-wayness, unpredictability or brute-force resistance that password storage or code signing depends on. Use a cryptographic hash such as SHA-256 for integrity against an adversary, and a password-specific function such as Argon2id or bcrypt for anything credential-shaped.

Why does CRC-32b give a different answer from CRC-32?

Because the two names describe the same algorithm wrapped around slightly different framing. The CRC-32b row in this calculator runs the identical algorithm over your bytes with one trailing 0x00 byte appended, and that extra byte changes the register state, so every value shifts. The purpose of such a variant is to distinguish a payload from its own terminator, so a stream that legitimately ends in a zero byte cannot be confused with one that ends there by accident. Worth knowing: the term is used inconsistently in the wild. The BZIP2 variant, usually written CRC-32/BZIP2 and the one identified by the standard check value 0xCBF43926 for the string 123456789, appends four zero bytes rather than one, and is a different function again. If you are interoperating with a specific tool or format, check what that implementation actually appends instead of trusting the name.

What does the constant 0xEDB88320 mean?

It is the reversed form of the CRC-32 generator polynomial 0x04C11DB7, and it appears in essentially every software implementation of CRC-32 you will meet. The generator polynomial defines which bit patterns are treated as errors. Its normal, forward bit order is the textbook representation, but the reflected order lets the whole computation run right to left through the bytes, which needs one table lookup and one shift per byte instead of eight conditional shifts. In the reflected implementation the polynomial value 0x04C11DB7 reverses to 0xEDB88320, and each of the 256 table entries is generated by starting from a byte value and applying that reversal loop eight times: if the low bit is set, XOR the accumulator with 0xEDB88320 and shift right, otherwise just shift right. Building the table from that definition, as this tool does, is safer than pasting a 256-entry array, because it removes any chance of the shipped table drifting away from the definition it claims to implement.

Why do two different files sometimes end up with the same CRC-32?

Because the output space is only 32 bits, so there are roughly 4.3 billion distinct checksums to share among every possible message, and some messages must inevitably share one. Working through the birthday paradox, the number of messages you need before a collision becomes likely is about the square root of 2^32, which is 65536, so random data hits a duplicate CRC somewhere in that region. Real files are worse than random, because structured documents differ in a few predictable places. This is not a flaw in the design, it is the design working as intended. A CRC-32 catches every single-bit error and every burst error up to 32 bits with certainty, which covers essentially all accidental corruption from noise, decay and bad transfers. What it cannot do is establish identity against an adversary, because an adversary can construct a collision deliberately in seconds. If you need collision resistance, you need a cryptographic hash.

How do I verify that a downloaded file is not corrupted?

Compute the CRC-32 of the file here and compare it with the checksum the publisher or transfer system recorded. If they match, the file arrived without corruption. Many tools already do this for you, since unzip verifies each entry, gzip and zlib verify the stream trailer, and browsers verify PNG chunks while decoding, but computing the value yourself is the quickest way to confirm what a specific tool produced, and it is the only way when you have an unusual format with no built-in verification. Choose File mode, select the download, and read the CRC-32 of file output. One important caveat: a matching CRC-32 proves the file is the one the publisher generated only if you trust the publisher. If the download could have been tampered with in transit, an attacker with that ability can craft a different file with the same checksum, which is exactly why signed releases such as GPG or Sigstore signatures exist alongside checksums.

Does my file or text get uploaded to a server?

No. The calculator is a client-side component: the JavaScript in your browser reads your text, your hex bytes or the file you selected, builds the CRC-32 table in memory and runs the checksum loop locally. Nothing is transmitted over the network, nothing is written to a server log, and nothing is persisted after you close the tab. For file mode this is implemented with the browser File API, which reads the file from your local disk into memory on demand. That matters practically, not just for privacy: you can checksum a multi-gigabyte disk image or a confidential archive without waiting on an upload, and without handing a third-party service a copy of data that may be regulated or personally identifying.

Related Tools

MD5 Hash Generator

Generate MD5 hash values instantly from any text input. The MD5 (Message Digest Algorithm 5) produces a 128-bit hash value commonly used for data integrity verification and checksum generation. While MD5 is no longer considered secure for cryptographic purposes due to known collision vulnerabilities, it remains widely used in non-security-critical applications such as file integrity checks, cache keys, and quick data fingerprinting. Our free browser-based tool computes MD5 hashes locally—your data never leaves your device, ensuring complete privacy for sensitive inputs.

SHA-1 Hash Generator

Generate SHA-1 hash values instantly from any text input. SHA-1 (Secure Hash Algorithm 1) produces a 160-bit hash value that has been widely used in security protocols and version control systems. While SHA-1 is now deprecated for cryptographic purposes due to demonstrated collision attacks, it remains essential for Git commit identification, legacy system compatibility, and non-security fingerprinting tasks. Our free browser-based tool computes SHA-1 hashes locally without transmitting your data to any server.

SHA-256 Hash Generator

Generate SHA-256 hash values instantly from any text input. SHA-256 (Secure Hash Algorithm 256-bit) is the current gold standard for cryptographic hashing, powering Bitcoin mining, blockchain technology, SSL/TLS certificates, and modern security protocols. With no known practical collision attacks, SHA-256 provides 256-bit security strength suitable for the most demanding applications. Our free browser-based tool computes SHA-256 hashes locally, ensuring your sensitive data never leaves your device.

SHA-512 Hash Generator

Generate SHA-512 hash values instantly from any text input. SHA-512 (Secure Hash Algorithm 512-bit) provides the highest security margin in the SHA-2 family with its 512-bit output, making it ideal for applications requiring maximum collision resistance and future-proof security. On 64-bit systems, SHA-512 often outperforms SHA-256 while delivering double the hash length. Our free browser-based tool computes SHA-512 hashes locally, keeping your data completely private.

File Hash Generator

Compute cryptographic hash values for any file directly in your browser. Our File Hash Generator supports MD5, SHA-1, SHA-256, and SHA-512 algorithms, allowing you to verify file integrity, validate downloads, and generate checksums without uploading your files to any server. The entire hashing process runs locally using the browser FileReader API, ensuring complete privacy and security for sensitive files.

HMAC Generator

Generate HMAC (Hash-based Message Authentication Code) values instantly from text input and a secret key. HMAC provides both data integrity and authenticity verification, making it essential for API authentication, message signing, and secure communication protocols. Our free browser-based tool supports HMAC with MD5, SHA-1, SHA-256, and SHA-512 hash functions, computing everything locally for complete privacy.

Bcrypt Generator - Create Password Hashes Online

Hashing a password is easy. Hashing it the way a modern application should is less obvious, because the algorithm choice changes how long an offline attack takes and the right answer depends on your hardware and your threat model. bcrypt has been the default recommendation for password storage for over two decades because it is deliberately slow and because the cost is tunable: the same algorithm can take 100 milliseconds on a modest server today and 250 milliseconds on a fast machine in ten years, while an attacker holding the hashes offline must pay that full cost on every single guess. This free bcrypt generator produces a real, correctly formatted bcrypt hash for any password you enter, and lets you set the work factor yourself while showing you roughly what that costs in milliseconds. It also verifies an existing hash, which is the step people forget: comparing a password against a stored hash is a completely separate operation from generating one, and both are supported here. Every computation runs client-side in your browser, so plaintext passwords are never transmitted to, logged by, or stored on any server. That matters because a password hashing tool is only trustworthy if it cannot see the value you are hashing, and this one never receives it.

Popular Tools

EMI Calculator

Planning to take a home loan, car loan, or personal loan and wondering what your monthly payment will look like? Our...

BMI Calculator

Ever stepped on a scale and wondered what that number actually means for your health? Our BMI calculator takes the gu...

Body Fat Calculator

Have you ever felt like the scale does not tell the whole story? You can weigh the same as someone else but look comp...

CAGR Calculator

When you invest in stocks, mutual funds, or any market-linked asset, one number tells you the real story of how your...

Unit Converter

From cooking to construction, from science to shopping, unit conversion is one of those things you need all the time...

Age Calculator

Figuring out someone's exact age isn't as simple as subtracting birth year from current year. Leap years, different m...

JSON Formatter

Format, beautify, and validate JSON data instantly with our free online tool. Paste raw JSON to get a properly indent...

QR Code Generator

Need a professional QR code for your website, business card, event, product packaging, or marketing campaign? Our fre...

Salary Calculator

Understanding your true take-home pay is essential for budgeting, planning, and making smart career decisions, yet mo...

Tip Calculator

Dining out, getting a haircut, taking a taxi, or receiving any kind of personal service often comes with the question...

Word Counter

Need an accurate word count for your essay, article, or document? This word counter gives you instant, precise counts...

Color Code Converter

Color Code Converter is a free online tool that instantly converts color values between different formats used in web...