O que é CRC-32?
CRC-32 (Cyclic Redundancy Check, 32-bit) é um algoritmo de checksum rápido usado para detectar alterações acidentais nos dados. Ele produz um valor de 32 bits (8 caracteres hexadecimais) baseado na divisão polinomial dos dados de entrada. Comumente implementado em hardware e software para verificação de erros em redes, dispositivos de armazenamento e formatos de arquivo.
Como o CRC-32 funciona
- Inicialize um registrador de 32 bits com todos os bits em 1 (0xFFFFFFFF).
- Processe cada byte fazendo XOR com o byte superior do registrador e indexando em uma tabela pré-calculada.
- Desloque o registrador 8 bits e faça XOR com o valor da tabela.
- Repita até que todos os bytes sejam processados.
- Finalize invertendo o registrador (NOT bit a bit) para obter o valor CRC-32.
Aplicações comuns
- ZIP, gzip, PNG e outros formatos de arquivo para verificações de integridade
- Ethernet, PPP e outros protocolos de rede
- Dispositivos de armazenamento como HDD, SSD e controladores RAID
- Verificação de arquivos compactados e integridade de downloads
Exemplos de checksums
Input | CRC-32 |
---|---|
Hello World | 4a17b156 |
password | 477dff2a |
test123 | c4b96aea |
(vazio) | 00000000 |
CRC-32 vs. outros checksums e hashes
Algorithm | Output | Resistência a colisões | Speed |
---|---|---|---|
CRC-32 | 32 bits | ❌ Baixa | ⚡ Muito rápido |
MD5 | 128 bits | ❌ Quebrado | ⚡ Rápido |
SHA-1 | 160 bits | ❌ Comprometido | ⚡ Rápido |
SHA-256 | 256 bits | ✅ Seguro | 🚀 Moderado |
BLAKE3 | 256 bits | ✅ Muito seguro | ⚡ Extremamente rápido |
Perguntas Frequentes
O CRC-32 é seguro para uso criptográfico?
Não. CRC-32 foi projetado para detecção de erros, não para segurança. É vulnerável a colisões intencionais.
Por que usar CRC-32 em vez de um hash criptográfico?
CRC-32 é muito mais rápido e suficiente para detectar erros acidentais, mas não deve ser usado em aplicações críticas de segurança.
Como posso verificar o download de um arquivo?
Gere o checksum CRC-32 do arquivo baixado e compare-o com o valor publicado para garantir a integridade.