Calculadora de CRC32
Digite ou cole o texto para calcular o CRC32 em tempo real. Processamento 100% no navegador — nenhum dado é enviado ao servidor.
O que é CRC32?
CRC32 (Cyclic Redundancy Check de 32 bits) é um algoritmo de detecção de erros que gera um valor de verificação de 8 caracteres hexadecimais (32 bits) para qualquer sequência de bytes. Diferente de MD5 ou SHA-256, o CRC32 não foi projetado para segurança criptográfica — seu objetivo é detectar erros acidentais em transmissões e armazenamento de dados.
Entrada: "hello"
CRC32: 3610A686O CRC32 é extremamente rápido e simples de implementar em hardware, o que explica sua adoção massiva em sistemas embarcados e formatos de arquivo.
Para que serve o CRC32?
CRC32 é usado amplamente em contextos onde a velocidade importa mais que a segurança:
- Arquivos ZIP: cada arquivo comprimido inclui um CRC32 para verificar integridade após descompressão
- Arquivos PNG: cada chunk de dados PNG inclui um CRC32
- ISO e imagens de disco: verificação de integridade de imagens de CD/DVD/USB
- Ethernet: o frame Ethernet inclui um FCS (Frame Check Sequence) baseado em CRC32 para detectar erros de transmissão
- SATA e USB: protocolos de armazenamento usam CRC para detectar erros nos dados lidos/gravados
- Bibliotecas de compressão: zlib (usada em gzip, PNG, HTTP) usa CRC32 para verificação
- Jogos e savefiles: detecção de corrupção em arquivos de save e ROMs
Como funciona o polinômio CRC32?
CRC32 trata os dados como um número binário gigante e divide esse número por um polinômio gerador fixo de 32 bits. O “resto” da divisão é o CRC32.
O polinômio padrão usado pelo ZIP, PNG e Ethernet é: 0xEDB88320 (representação “reflected” de 0x04C11DB7)
O processo prático:
- Uma tabela de 256 entradas de 32 bits é pré-computada a partir do polinômio
- Para cada byte da entrada, o CRC é atualizado com uma operação XOR e uma consulta à tabela
- Ao final, o CRC é invertido (XOR com 0xFFFFFFFF) para produzir o valor final
Esse design permite implementação eficiente em hardware com portas lógicas simples.
CRC32 vs MD5 vs SHA-256: propósitos diferentes
| Característica | CRC32 | MD5 | SHA-256 |
|---|---|---|---|
| Bits de saída | 32 | 128 | 256 |
| Propósito | Detecção de erros | Checksum / legado | Segurança criptográfica |
| Colisões intencionais | Triviais | Possíveis | Inviáveis |
| Velocidade | Extremamente rápido | Muito rápido | Rápido |
| Resistência a adulteração | Nenhuma | Baixa | Alta |
| Recomendado para | Erros acidentais | Checksums simples | Segurança |
A regra prática: use CRC32 para detectar corrupção acidental, MD5 para checksums de compatibilidade e SHA-256 para qualquer coisa relacionada à segurança.
Casos de uso do CRC32 em detalhes
Verificação de arquivos ZIP
Ao extrair um ZIP, o descompressor recalcula o CRC32 de cada arquivo e compara com o valor armazenado no cabeçalho. Se houver diferença, o arquivo está corrompido. Isso detecta erros de bit causados por falhas de hardware ou transmissão incompleta.
Protocolo Ethernet
O Frame Check Sequence (FCS) de 4 bytes no final de cada frame Ethernet é um CRC32. Switches e placas de rede verificam este valor ao receber dados — frames com CRC inválido são descartados silenciosamente, forçando retransmissão.
Detecção vs proteção
CRC32 detecta erros, mas não os corrige — para isso existem códigos como Reed-Solomon (usado em QR codes e CDs). CRC32 também não protege contra adulteração maliciosa: um atacante pode modificar dados e recalcular o CRC32 para que pareça válido.
Perguntas frequentes sobre CRC32
CRC32 pode ser usado para senhas ou segurança?
Não. CRC32 não oferece resistência a colisões intencionais — é trivial criar duas strings com o mesmo CRC32. Para segurança, use SHA-256 ou SHA-512. Para senhas, use bcrypt, Argon2 ou scrypt.
Qual é o CRC32 de uma string vazia?
O CRC32 de uma string vazia é 00000000 (zero). Isso faz sentido matematicamente: sem bytes de entrada, o algoritmo retorna o valor neutro.
CRC32 é o mesmo em todos os sistemas?
Existem variantes do CRC32 com polinômios diferentes. O mais comum (usado por ZIP, PNG, zlib e Ethernet) usa o polinômio 0xEDB88320. Outros sistemas usam variantes como CRC32C (iSCSI, ext4, Btrfs) com o polinômio de Castagnoli (0x82F63B78). Esta calculadora usa o polinômio padrão do ZIP/PNG.
CRC32 detecta todos os erros?
CRC32 detecta: todos os erros de bit único, todos os erros de dois bits em qualquer posição, qualquer número ímpar de erros, e rajadas de erro (burst errors) de até 32 bits. Para rajadas maiores, há probabilidade de falha na detecção de aproximadamente 1 em 4 bilhões (2^-32).