CoderTools

Calculadora CRC

Calcule vários checksums CRC com suporte a texto, hexadecimal e arquivos

Digite texto UTF-8, será convertido para bytes

Sobre o Algoritmo CRC

A Verificação de Redundância Cíclica (CRC) é um código de detecção de erros robusto usado comumente em redes digitais para detectar mudanças acidentais em dados brutos.

CRC é projetado para ser fácil de implementar em hardware e excelente para detectar erros de ruído de transmissão.

Perfis CRC Suportados

Esta ferramenta implementa uma ampla gama de algoritmos CRC padrão usados em protocolos industriais e de rede.

Algoritmo Largura Polinômio Uso
CRC-88 bit0x07Verificação de dados simples, sensores
CRC-16/Modbus16 bit0x8005Protocolo Modbus, industrial
CRC-16/CCITT16 bit0x1021X.25, HDLC, Bluetooth
CRC-3232 bit0x04C11DB7ZIP, Ethernet, PNG
CRC-32C32 bit0x1EDC6F41iSCSI, SCTP, Btrfs
CRC-64/ECMA64 bit0x42F0E1EBA9EA3693ECMA-182, compressão XZ

Casos de Uso Comuns

Verificação de pacotes de rede (Ethernet)
Verificação de integridade de arquivos (ZIP)
Protocolos de comunicação industrial (Modbus RTU)
Verificação de dados de sistemas de armazenamento
Transmissão de dados em sistemas embarcados
Verificação de integridade de firmware

Perguntas frequentes

O que é CRC e como difere de um hash criptográfico?

CRC (Verificação de Redundância Cíclica) é um algoritmo de soma de verificação projetado para detectar erros de bits acidentais durante a transmissão ou armazenamento de dados. Ao contrário de hashes criptográficos como SHA-256, o CRC não é projetado para resistir a adulterações intencionais. Use CRC para detecção de erros em protocolos de comunicação; use um hash criptográfico para verificação de integridade quando a segurança é importante.

Qual variante CRC devo escolher para meu caso de uso?

CRC-32 (ISO 3309) é amplamente usado em Ethernet, ZIP e PNG. CRC-16/MODBUS é padrão para protocolos industriais. CRC-16/CCITT é adequado para comunicação serial. CRC-8 funciona para mensagens curtas em sistemas embarcados. Se uma especificação de protocolo define um polinômio e valor inicial específicos, siga-os exatamente.

Por que meu resultado CRC difere do valor esperado?

Os resultados CRC dependem de quatro parâmetros: polinômio, valor inicial, reflexão de entrada/saída e XOR final. Uma incompatibilidade em qualquer um deles produz um resultado diferente. Verifique também se a entrada está codificada como UTF-8, ASCII ou bytes brutos — a mesma string de texto pode produzir sequências de bytes diferentes e portanto valores CRC distintos.

Qual é a diferença entre CRC-16/MODBUS e CRC-16/CCITT?

Ambas são CRC de 16 bits com diferentes polinômios e valores iniciais. CRC-16/MODBUS usa o polinômio 0x8005, valor inicial 0xFFFF, com reflexão na entrada e saída. CRC-16/CCITT (também chamado CRC-CCITT ou CRC-16-IBM) usa o polinômio 0x1021, valor inicial 0xFFFF. Produzem saídas completamente diferentes para os mesmos dados.

Posso calcular CRC para um arquivo binário, não apenas texto?

Sim — cole os bytes hexadecimais dos seus dados binários usando o formato de entrada hexadecimal. A ferramenta processa os valores de bytes brutos independentemente de representarem caracteres imprimíveis. Para arquivos binários muito grandes, ferramentas de linha de comando como cksum ou binascii.crc32() do Python são mais práticas.

Menu Rápido

Nenhuma ferramenta recente