search

Found

info Visão geral

Calcula de uma vez o CRC-32 IEEE 802.3 e o CRC-32C Castagnoli a partir de texto ou bytes hexadecimais, mostrados em hex e decimal com o tamanho em bytes.

📘 Como usar

  1. Cole o texto ou alterne para o modo de bytes hexadecimais.
  2. Leia os resultados IEEE 802.3 e Castagnoli em hex e decimal.
  3. Compare o valor com o checksum que seu protocolo ou formato espera.

Calculadora de checksum CRC-32 e CRC-32C

Calcula o CRC-32 sobre os bytes UTF-8 do texto informado.

CRC-32 (IEEE 802.3)
poly 0xEDB88320
Decimal:
CRC-32C (Castagnoli)
poly 0x82F63B78
Decimal:
Bytes de entrada
0 bytes
Status
Copiado!

※ Implementação por tabela (256 entradas pré-calculadas) para os polinômios IEEE 802.3 e Castagnoli.

※ CRC é um código de detecção de erros, não um hash criptográfico. Use SHA-256 para integridade ou assinaturas.

Article

Calculadora de checksum CRC-32 e CRC-32C | Dois polinômios, uma entrada

Obtenha o CRC-32 IEEE 802.3 e o CRC-32C Castagnoli a partir de um único texto ou bytes hexadecimais, lado a lado em hex e decimal. Feita para o momento em que você tem um checksum à frente e precisa saber qual polinômio o gerou.

💡 Sobre esta ferramenta

A maioria das calculadoras CRC online assume um único polinômio em silêncio, e aí está a armadilha: "CRC-32" não é um número único. A variante clássica IEEE 802.3 (polinômio refletido 0xEDB88320) é a usada por zip, gzip, PNG e quadros Ethernet. O CRC-32C de Castagnoli (0x82F63B78) é outra coisa: integrado a SCTP, iSCSI, Btrfs e aos metadados do ext4, em parte porque as CPUs modernas o calculam com uma instrução dedicada.

Quando um depurador mostra um checksum armazenado e seu código não bate, a causa comum é a troca de polinômio. Esta calculadora mostra os dois de uma vez para você comparar o valor desconhecido com o correto sem refazer sua cadeia de ferramentas. Alterne para o modo bytes hex para inserir os bytes brutos exatamente como aparecem em uma captura de pacotes ou editor hexadecimal; prefixos 0x, espaços, vírgulas e dois pontos são aceitos.

🧐 Perguntas frequentes

Q. Qual a diferença entre CRC-32 e CRC-32C? A. Usam polinômios geradores diferentes. O IEEE 802.3 CRC-32 emprega 0xEDB88320 (refletido) e aparece em zip, gzip e PNG. O CRC-32C usa o 0x82F63B78 de Castagnoli, com melhor detecção de erros e aceleração por hardware no x86 pela instrução crc32.

Q. Meu checksum não bate com o do arquivo. Por quê? A. Além do polinômio, as variantes CRC diferem na reflexão de bits, no valor inicial e no XOR final. Esta ferramenta usa os parâmetros padrão: inicial 0xFFFFFFFF, entrada e saída refletidas, XOR final 0xFFFFFFFF. Se um formato usa outros parâmetros, o resultado muda mesmo com o mesmo polinômio.

Q. Como verifico se o cálculo está correto? A. A string de teste 123456789 retorna 0xCBF43926 para IEEE CRC-32 e 0xE3069283 para CRC-32C. Esses são os valores de referência publicados, então você pode confirmar a ferramenta antes de confiar nela com seus dados.

Q. Por que a entrada vazia mostra 00000000? A. Com o valor inicial e o XOR final padrão, o CRC de zero bytes se cancela e fica em 0x00000000. Esse é o resultado correto, não um erro.

📚 Curiosidades

A escolha do CRC-32C para SCTP e iSCSI não foi por acaso. A busca que Guy Castagnoli realizou em 1993 classificou os polinômios pela distância de Hamming, o menor número de erros de bit capazes de passar despercebidos. Seu polinômio capta mais padrões de erro em comprimentos comuns de mensagem que o clássico da IEEE. Anos depois a Intel adicionou uma instrução SSE4.2 para executar esse polinômio em hardware, o que explica por que os sistemas de arquivos projetados nesta década preferem a variante "C" enquanto seu arquivo zip ainda carrega o original.