简体中文 Tiếng Việt 日本語 한국어 हिन्दी Español Français العربية বাংলা Português Русский اردو Bahasa Indonesia Deutsch Naijá मराठी తెలుగు Türkçe தமிழ்
// checksum utility
CRC32Ferramenta de soma de verificação
SOMENTE DO LADO DO CLIENTE
NÃO DADOS TRANSMITIDOS
🔵Todos os cálculos são executadoslocalmente no seu navegador. Nenhum dado é carregado em nenhum servidor. Suporta variantes CRC-32/ISO-HDLC, CRC-32C, CRC-32/MPEG-2 e CRC-32/BZIP2.
Configurações de cálculo
Variante CRC ↗
Codificação de entrada ↗
Formato de saída ↗
Dados de entrada
Solte um arquivo aqui
Ready - insira os dados e clique em "Calcular CRC32"
Resultados do cálculo
ISO-HDLC
Castagnoli
MPEG-2
BZIP2
Verificação de soma de verificação
Cole um valor CRC32 esperado para compará-lo com o cálculo atual.
Bytes de entrada
0
Cálculos totais
0
Variante atual
ISO-HDLC
Decorrido (ms)
// CRC32 Variant Guide
Variantes CRC
CRC-32 / ISO-HDLCPKZip · PNG · Ethernet
A implementação mais comum do CRC-32, também chamada de CRC-32b. Ele usa a forma refletida do polinômio 0x04C11DB7, ou seja, 0xEDB88320. Ambos os bytes de entrada e saída são refletidos em bits (LSB primeiro), com valor inicial e XOR final definidos como 0xFFFFFFFF.

Amplamente utilizado por imagens ZIP, gzip, PNG, frames Ethernet (IEEE 802.3), PKCS#7 e muitos sistemas legados. Esta é a variante "padrão CRC-32" de fato.
Polinômio0x04C11DB7(normal) /0xEDB88320(refletido)
Valor inicial0xFFFFFFFF
Reflexão de entradaSim (RefIn = verdadeiro)
Reflexão de saídaSim (RefOut = verdadeiro)
XOR final0xFFFFFFFF
Verificar valor0xCBF43926(para "123456789")
CRC-32C/CastagnoliiSCSI · NVMe · SCTP
Proposta por G. Castagnoli e colegas em 1993, esta variante usa o polinômio 0x1EDC6F41 (forma refletida 0x82F63B78). Na mesma distância de Hamming, oferece detecção de erro de explosão mais forte do que o polinômio ISO-HDLC.

A aceleração de hardware está disponível por meio das instruções Intel SSE4.2 e ARM CRC32. É amplamente utilizado em protocolos modernos de armazenamento e transporte, como iSCSI, NVMe, Btrfs e SCTP.
Polinômio0x1EDC6F41(normal) /0x82F63B78(refletido)
Valor inicial0xFFFFFFFF
Reflexão de entradaSim (RefIn = verdadeiro)
Reflexão de saídaSim (RefOut = verdadeiro)
XOR final0xFFFFFFFF
Verificar valor0xE3069283(para "123456789")
CRC-32/MPEG-2MPEG-2 · DVB · ATSC
Usa o mesmo polinômio 0x04C11DB7 que ISO-HDLC, mas nem entrada nem saída sãobit refletido(MSB primeiro, big-endian). O valor inicial é 0xFFFFFFFF e o XOR final está desabilitado (XorOut = 0x00000000).

Usado principalmente para tabelas PSI/SI em fluxos de transporte MPEG-2 (PAT, PMT, NIT e tabelas relacionadas), além de verificações de integridade em sistemas de transmissão DVB e ATSC.
Polinômio0x04C11DB7
Valor inicial0xFFFFFFFF
Reflexão de entradaNão (RefIn = falso)
Reflexão de saídaNão (RefOut = falso)
XOR final0x00000000(desativado)
Verificar valor0x0376E6E7(para "123456789")
CRC-32/BZIP2BZip2 · AAL5 · DECT
Seus parâmetros são quase idênticos aos do MPEG-2 (polinômio 0x04C11DB7, sem reflexão, valor inicial 0xFFFFFFFF). A única diferença é umXOR final com 0xFFFFFFFF, que inverte cada bit. Também é conhecido como CRC-32/AAL5 ou CRC-32/DECT-B.

Usado pelo formato de arquivo compactado BZip2 e pelo campo de soma de verificação do trailer do protocolo ATM AAL5.
Polinômio0x04C11DB7
Valor inicial0xFFFFFFFF
Reflexão de entradaNão (RefIn = falso)
Reflexão de saídaNão (RefOut = falso)
XOR final0xFFFFFFFF
Verificar valor0xFC891918(para "123456789")
// Input Encoding Guide
Codificação de entrada
UTF-8 TextoPadrão · Geral
Trata a entrada como umUTF-8string, converte-o em bytes e depois calcula CRC32. Este é o modo mais comum para texto simples, código-fonte, JSON e conteúdo semelhante.

Nota: o mesmo texto codificado com um conjunto de caracteres diferente, como GBK ou UTF-16, produz um fluxo de bytes diferente e, portanto, um valor CRC32 diferente. Esta ferramenta sempre usa UTF-8.
Melhor paraTexto simples, código-fonte, JSON, XML
Exemplo"Olá" →48 65 6C 6C 6F(5 bytes)
Caracteres CJKA maioria dos caracteres CJK usa 3 bytes em UTF-8
HexadecimalDados binários · Quadros de protocolo
Trata a entrada como brutaliterais de bytes hexadecimais. Espaços e quebras de linha são ignorados. Cada dois caracteres hexadecimais tornam-se um byte (00–FF).

Útil quando você precisa de verificações CRC para dados binários exatos, como quadros de rede, fragmentos de imagem de firmware ou despejos de memória. Você pode colar a saída do Wireshark ou hexadecimal diretamente.
FormatoSomente0-9ea-f / A-Fsão permitidos
Contagem de caracteresDeve ser par (2 caracteres por byte)
Exemplo48656C6C6F= "Olá" (5 bytes)
Espaço em brancoIgnorado automaticamente.48 65 6Cé o mesmo que48656C
Base64Binário codificado · Certificados · Imagens
Trata a entrada como umSequência codificada em Base64, decodifica-o em bytes brutos e depois calcula CRC32. Útil para certificados PEM, cargas JWT, URIs de dados e outros conteúdos Base64.

Suporta o alfabeto Base64 padrão (A-Z a-z 0-9 + /). O caractere de preenchimento=é opcional. Base64 seguro para URL (-_) não é compatível.
AlfabetoA-Z a-z 0-9 + / =
ExemploSGVsbG8=→ "Olá" (5 bytes)
URL seguroNão suportado. Substituir-→+e_→/primeiro
⚠ 1 caractereInvalid — 6 bits não são suficientes para formar 1 byte (8 bits são necessários)
2 CaracteresDecodifica para1 byte(entrada mínima válida)
3 CaracteresDecodifica para2 bytes
4 CaracteresDecodifica para3 bytes(o padrão se repete a cada 4 caracteres)
// Output Format Guide
Formato de saída
HexadecimalMais Comum · Padrão
Exibe o valor como um número hexadecimal maiúsculo de 8 dígitos prefixado com0x. Cada caractere representa 4 bits, totalizando 32 bits. Este é o formato padrão usado na maioria das ferramentas, código-fonte e documentação.

Em comparação com a saída decimal, o hexadecimal torna os limites de bytes mais fáceis de inspecionar e combina dumps de memória e campos de protocolo com mais naturalidade.
Exemplo0xCBF43926
Comprimento8 caracteres hexadecimais = 32 bits
BaseBase 16 (0-9, AF)
Melhor paraCódigo, documentação, Wireshark, editores hexadecimais
DecimalInteiro não assinado de 32 bits
Exibe a soma de verificação como uminteiro decimal não assinado de 32 bitsno intervalo 0–4.294.967.295 (2³²−1). Algumas linguagens e ferramentas comparam valores CRC na forma decimal, e os campos do banco de dados geralmente armazenam essa representação.

Nota: os resultados CRC32 devem ser tratados como números inteiros sem sinal. Em tipos int assinados, como Java ou C#, valores acima de 0x7FFFFFFF podem parecer negativos e devem ser convertidos em uint ou em uma representação não assinada mais ampla.
Exemplo3421780262
Intervalo0–4,294,967,295
NotaPara Java int, converta com& 0xFFFFFFFFL
Melhor paraDatabases, valores de estrutura Python, comparação numérica
BinárioAnálise em nível de bit
Exibe a soma de verificação como uma string binária de 32 bits prefixada com0b. Cada caractere é 0 ou 1, alinhado com o bit mais significativo à esquerda e preenchido com zeros à esquerda quando necessário.

Útil principalmente para entender o algoritmo CRC interno, estudar divisão polinomial, ensino e cenários incorporados que precisam de processamento de soma de verificação em nível de bit. A saída
Exemplo0b11001011…00100110
ComprimentoFixado em 32 bits com preenchimento de zero à esquerda
Bit mais altoBit 31 (MSB) aparece na extrema esquerda
Melhor paraAnálise de algoritmo, ensino, depuração incorporada
OctalUnix · Sistemas de arquivos
Exibe a soma de verificação como um número octal de 11 dígitos prefixado com0o. São necessários no máximo 11 caracteres octais para 32 bits porque 3×11 = 33 > 32. Cada dígito octal representa 3 bits.

Octal é incomum em fluxos de trabalho CRC modernos, mas ainda aparece em algumas ferramentas Unix, cadeias de ferramentas de firmware incorporadas e especificações de protocolo de comunicação mais antigas.
Exemplo0o31572031046
ComprimentoAté 11 dígitos octais
Por dígitoRepresenta 3 bits (0-7)
Melhor paraFerramentas Unix, especificações de protocolo mais antigas