CRC-32 de "123456789"
0xCBF43926 0xCBF43926 para o CRC-32/ISO-HDLC, a variante usada por ZIP, PNG, Ethernet e gzip.
Cole hex ou texto e veja de uma vez as 63 variantes de CRC-8, CRC-16 e CRC-32. Checksum que não bate? Digite o valor e a ferramenta diz qual é a variante — MODBUS, CCITT-FALSE, XMODEM, KERMIT. Tudo roda no seu navegador.
| Variante | Resultado | Poly | Init | RefIn/RefOut | XorOut |
|---|---|---|---|---|---|
| CRC-8 | |||||
| CRC-8/AUTOSAR | 0x2F | 0xFF | false / false | 0xFF | |
| CRC-8/BLUETOOTH | 0xA7 | 0x00 | true / true | 0x00 | |
| CRC-8/CDMA2000 | 0x9B | 0xFF | false / false | 0x00 | |
| CRC-8/DARC | 0x39 | 0x00 | true / true | 0x00 | |
| CRC-8/DVB-S2 | 0xD5 | 0x00 | false / false | 0x00 | |
| CRC-8/GSM-A | 0x1D | 0x00 | false / false | 0x00 | |
| CRC-8/GSM-B | 0x49 | 0x00 | false / false | 0xFF | |
| CRC-8/HITAG | 0x1D | 0xFF | false / false | 0x00 | |
| CRC-8/I-432-1 CRC-8/ITU | 0x07 | 0x00 | false / false | 0x55 | |
| CRC-8/I-CODE | 0x1D | 0xFD | false / false | 0x00 | |
| CRC-8/LTE | 0x9B | 0x00 | false / false | 0x00 | |
| CRC-8/MAXIM-DOW CRC-8/MAXIM · DOW-CRC | 0x31 | 0x00 | true / true | 0x00 | |
| CRC-8/MIFARE-MAD | 0x1D | 0xC7 | false / false | 0x00 | |
| CRC-8/NRSC-5 | 0x31 | 0xFF | false / false | 0x00 | |
| CRC-8/OPENSAFETY | 0x2F | 0x00 | false / false | 0x00 | |
| CRC-8/ROHC | 0x07 | 0xFF | true / true | 0x00 | |
| CRC-8/SAE-J1850 CRC-8/J1850 | 0x1D | 0xFF | false / false | 0xFF | |
| CRC-8/SMBUS CRC-8 | 0x07 | 0x00 | false / false | 0x00 | |
| CRC-8/TECH-3250 CRC-8/AES · CRC-8/EBU | 0x1D | 0xFF | true / true | 0x00 | |
| CRC-8/WCDMA | 0x9B | 0x00 | true / true | 0x00 | |
| CRC-16 | |||||
| CRC-16/ARC CRC-16 · CRC-16/IBM · CRC-16/LHA | 0x8005 | 0x0000 | true / true | 0x0000 | |
| CRC-16/CDMA2000 | 0xC867 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/CMS | 0x8005 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/DDS-110 | 0x8005 | 0x800D | false / false | 0x0000 | |
| CRC-16/DECT-R R-CRC-16 | 0x0589 | 0x0000 | false / false | 0x0001 | |
| CRC-16/DECT-X X-CRC-16 | 0x0589 | 0x0000 | false / false | 0x0000 | |
| CRC-16/DNP | 0x3D65 | 0x0000 | true / true | 0xFFFF | |
| CRC-16/EN-13757 | 0x3D65 | 0x0000 | false / false | 0xFFFF | |
| CRC-16/GENIBUS CRC-16/DARC · CRC-16/EPC · CRC-16/EPC-C1G2 · CRC-16/I-CODE | 0x1021 | 0xFFFF | false / false | 0xFFFF | |
| CRC-16/GSM | 0x1021 | 0x0000 | false / false | 0xFFFF | |
| CRC-16/IBM-3740 CRC-16/CCITT-FALSE · CRC-16/AUTOSAR | 0x1021 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/IBM-SDLC CRC-16/X-25 · CRC-16/X25 · CRC-16/ISO-HDLC · CRC-B · X-25 | 0x1021 | 0xFFFF | true / true | 0xFFFF | |
| CRC-16/ISO-IEC-14443-3-A CRC-A | 0x1021 | 0xC6C6 | true / true | 0x0000 | |
| CRC-16/KERMIT CRC-16/CCITT · CRC-16/CCITT-TRUE · CRC-16/V-41-LSB · CRC-CCITT | 0x1021 | 0x0000 | true / true | 0x0000 | |
| CRC-16/LJ1200 | 0x6F63 | 0x0000 | false / false | 0x0000 | |
| CRC-16/M17 | 0x5935 | 0xFFFF | false / false | 0x0000 | |
| CRC-16/MAXIM-DOW CRC-16/MAXIM | 0x8005 | 0x0000 | true / true | 0xFFFF | |
| CRC-16/MCRF4XX | 0x1021 | 0xFFFF | true / true | 0x0000 | |
| CRC-16/MODBUS | 0x8005 | 0xFFFF | true / true | 0x0000 | |
| CRC-16/NRSC-5 | 0x080B | 0xFFFF | true / true | 0x0000 | |
| CRC-16/OPENSAFETY-A | 0x5935 | 0x0000 | false / false | 0x0000 | |
| CRC-16/OPENSAFETY-B | 0x755B | 0x0000 | false / false | 0x0000 | |
| CRC-16/PROFIBUS CRC-16/IEC-61158-2 | 0x1DCF | 0xFFFF | false / false | 0xFFFF | |
| CRC-16/RIELLO | 0x1021 | 0xB2AA | true / true | 0x0000 | |
| CRC-16/SPI-FUJITSU CRC-16/AUG-CCITT | 0x1021 | 0x1D0F | false / false | 0x0000 | |
| CRC-16/T10-DIF | 0x8BB7 | 0x0000 | false / false | 0x0000 | |
| CRC-16/TELEDISK | 0xA097 | 0x0000 | false / false | 0x0000 | |
| CRC-16/TMS37157 | 0x1021 | 0x89EC | true / true | 0x0000 | |
| CRC-16/UMTS CRC-16/BUYPASS · CRC-16/VERIFONE | 0x8005 | 0x0000 | false / false | 0x0000 | |
| CRC-16/USB | 0x8005 | 0xFFFF | true / true | 0xFFFF | |
| CRC-16/XMODEM CRC-16/ACORN · CRC-16/LTE · CRC-16/V-41-MSB · ZMODEM | 0x1021 | 0x0000 | false / false | 0x0000 | |
| CRC-32 | |||||
| CRC-32/AIXM CRC-32Q | 0x814141AB | 0x00000000 | false / false | 0x00000000 | |
| CRC-32/AUTOSAR | 0xF4ACFB13 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/BASE91-D CRC-32D | 0xA833982B | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/BZIP2 CRC-32/AAL5 · CRC-32/DECT-B · B-CRC-32 | 0x04C11DB7 | 0xFFFFFFFF | false / false | 0xFFFFFFFF | |
| CRC-32/CD-ROM-EDC | 0x8001801B | 0x00000000 | true / true | 0x00000000 | |
| CRC-32/CKSUM CRC-32/POSIX | 0x04C11DB7 | 0x00000000 | false / false | 0xFFFFFFFF | |
| CRC-32/ISCSI CRC-32C · CRC-32/BASE91-C · CRC-32/CASTAGNOLI · CRC-32/INTERLAKEN | 0x1EDC6F41 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/ISO-HDLC CRC-32 · CRC-32/ADCCP · CRC-32/V-42 · CRC-32/XZ · PKZIP | 0x04C11DB7 | 0xFFFFFFFF | true / true | 0xFFFFFFFF | |
| CRC-32/JAMCRC | 0x04C11DB7 | 0xFFFFFFFF | true / true | 0x00000000 | |
| CRC-32/MEF | 0x741B8CD7 | 0xFFFFFFFF | true / true | 0x00000000 | |
| CRC-32/MPEG-2 | 0x04C11DB7 | 0xFFFFFFFF | false / false | 0x00000000 | |
| CRC-32/XFER | 0x000000AF | 0x00000000 | false / false | 0x00000000 | |
Use isto quando o seu equipamento documentar um polinômio que não está na tabela acima.
Desenvolvido e verificado pela equipe de engenharia da Go Tools.
0xCBF43926 0xCBF43926 para o CRC-32/ISO-HDLC, a variante usada por ZIP, PNG, Ethernet e gzip.
0x4B37 0x4B37, com poly 0x8005, init 0xFFFF, entrada e saída refletidas, sem XOR final.
0x29B1 0x29B1. Seu nome formal no catálogo é CRC-16/IBM-3740: poly 0x1021, init 0xFFFF, sem reflexão.
63 Esta calculadora cobre 63 variantes catalogadas: 20 de largura 8, 31 de largura 16 e 12 de largura 32.
A verificação de redundância cíclica trata um bloco de dados como os coeficientes de um polinômio binário muito longo, divide esse polinômio por um polinômio gerador fixo usando aritmética módulo 2 e guarda o resto. Esse resto é a soma de verificação. A construção é popular porque a divisão se reduz a deslocamentos e XORs, o que custa quase nada em hardware, e porque a álgebra dá garantias duras em vez de esperança estatística: um polinômio de 16 bits bem escolhido detecta todo erro de um bit, todo erro de dois bits dentro de um comprimento de bloco útil, todo número ímpar de bits invertidos e toda rajada de 16 ou menos bits corrompidos consecutivos.
O que torna o CRC confuso na prática é que o polinômio é apenas um de seis parâmetros. Duas implementações podem concordar no polinômio e ainda assim discordar em cada resultado, porque diferem no valor inicial do registrador, em se os bytes de entrada e o registrador de saída têm a ordem dos bits invertida, e na constante aplicada com XOR ao valor final. Uma variante de CRC é esse conjunto inteiro de parâmetros, não o polinômio sozinho — e é por isso que um nome como "CRC-16" praticamente não identifica nada por si só, e por isso esta página mostra o polinômio, o valor inicial, os dois indicadores de reflexão e o XOR final ao lado de cada resultado, com a largura como título de grupo.
Uma ressalva que a tabela não consegue mostrar: um polinômio de 16 bits só detecta todo número ímpar de bits invertidos quando x+1 o divide. Isso vale para os dois que você tem mais chance de encontrar, 0x1021 e 0x8005, mas não para todos — CRC-16/T10-DIF e CRC-16/PROFIBUS estão entre as exceções.
// CRC-16/MODBUS: poly=0x8005, init=0xFFFF, refin/refout=true, xorout=0x0000
// Written in the reflected form, so the polynomial appears bit-reversed as 0xA001.
function crc16Modbus(bytes) {
let crc = 0xffff;
for (const byte of bytes) {
crc ^= byte;
for (let i = 0; i < 8; i++) {
crc = crc & 1 ? (crc >>> 1) ^ 0xa001 : crc >>> 1;
}
}
return crc;
}
crc16Modbus([0x01, 0x03, 0x00, 0x00, 0x00, 0x0a]); // 0xCDC5
// On the wire Modbus RTU sends the low byte first: ... 0x0A 0xC5 0xCD CRC-8, CRC-16 e CRC-32 são recalculados juntos enquanto você digita. Nenhum menu suspenso para adivinhar antes de conseguir ver qualquer coisa.
Digite o checksum que te entregaram e as variantes que o produzem ficam destacadas, de modo que identificar um algoritmo desconhecido leva um passo em vez de vinte.
Cada linha mostra o nome do catálogo RevEng mais os apelidos usados em campo — CCITT-FALSE, CRC-16/IBM, CRC-32C, X-25 e os demais.
Polinômio, valor inicial, as duas flags de reflexão e o XOR final ficam ao lado de cada resultado, então dá para verificar a correspondência contra a especificação.
Largura, polinômio, init, reflexão e XOR final são todos editáveis, para polinômios que nunca entraram em um catálogo.
O cálculo acontece no seu navegador. Quadros de produção e imagens de firmware nunca saem da máquina.
123456789
CRC-32/ISO-HDLC = 0xCBF43926, CRC-16/MODBUS = 0x4B37, CRC-8/SMBUS = 0xF4
Toda variante de CRC do catálogo RevEng publica seu resultado para a string ASCII 123456789. Isso faz desta entrada o autoteste padrão: se uma biblioteca discorda da tabela mostrada aqui, a biblioteca está errada.
01 03 00 00 00 0A
CRC-16/MODBUS = 0xCDC5
Leitura de registradores holding do escravo 1. O Modbus RTU anexa primeiro o byte baixo do CRC, então esse quadro vai para o barramento como 01 03 00 00 00 0A C5 CD — uma inversão que responde por boa parte dos checksums que as pessoas não conseguem reproduzir.
DEADBEEF
MODBUS = 0xC19B, CCITT-FALSE = 0x4097, XMODEM = 0xC457, KERMIT = 0x1915
Lido em modo Hex, portanto quatro bytes e não os oito caracteres da string. As quatro variantes de CRC-16 mais conhecidas discordam completamente sobre eles. Nada está quebrado: elas diferem no valor inicial, na reflexão e no XOR final, não na correção.
123456789 com valor esperado 0x29B1
CRC-16/IBM-3740 (seu manual pode chamá-la de CRC-16/CCITT-FALSE)
Este é exatamente o caso para o qual a calculadora foi feita. Você tem os dados e o checksum que outra pessoa calculou, mas não o nome da variante — então procura o conjunto de parâmetros que o reproduz.
Quadros de protocolo são quase sempre hex. Use texto apenas quando estiver calculando o checksum de uma string literal, como o valor de autoteste 123456789.
No modo hex os separadores são ignorados, então 01 03 00 00 00 0A, 0x01 0x03 e 010300 00000A são todos aceitos.
A tabela é agrupada por largura. Os nomes formais vêm do catálogo RevEng, com os apelidos que o manual do seu equipamento provavelmente usa impressos logo abaixo.
Se você já tem um checksum e quer saber a variante dele, digite-o no campo de valor esperado e leia a linha destacada.
Deixada no modo texto, a calculadora processa os caracteres ASCII do seu dump hexadecimal em vez dos bytes que ele representa. Mude para o modo Hex — a contagem de bytes embaixo do seletor de modo diz qual leitura você obteve.
Text mode, input "01 03" -> 5 bytes: 30 31 20 30 33
Hex mode, input "01 03" -> 2 bytes: 01 03
O Modbus RTU transmite primeiro o byte baixo do CRC. Um quadro terminado em C5 CD carrega o checksum 0xCDC5, e não 0xC5CD.
expected 0xC5CD (bytes read in transmission order)
expected 0xCDC5 (bytes reassembled low-byte-first)
O CRC cobre os bytes que vêm antes dele. Realimentar o quadro inteiro, com o sufixo junto, produz um resíduo em vez do checksum.
01 03 00 00 00 0A C5 CD <- trailer included
01 03 00 00 00 0A <- payload only
31 variantes catalogadas têm 16 bits de largura. Sem os outros cinco parâmetros, o nome não restringe nada.
spec says: "trailer is a CRC-16"
spec says: "CRC-16/MODBUS, poly 0x8005, init 0xFFFF, refin/refout true"
Ferramentas de Segurança
Descriptografe AES online — GCM/CBC/CTR, frase-senha ou chave bruta, detecta automaticamente o formato "U2FsdGVkX1" do OpenSSL e CryptoJS. 100% no navegador, as chaves nunca saem da página.
Ferramentas de Segurança
Criptografia AES online e gratuita — AES-128/192/256, GCM/CBC/CTR, frase-senha (PBKDF2) ou chave bruta. Roda 100% no navegador; nada é enviado a um servidor.
Ferramentas de Segurança
Gere e verifique hashes bcrypt de senha online — custo ajustável, prefixos $2b$/$2a$/$2y$. 100% no seu navegador; sua senha nunca é enviada.
Ferramentas de Segurança
Gerador e verificador de HMAC online e gratuito. Calcule HMAC-SHA256/SHA1/SHA384/SHA512 com chaves em Texto, Hex ou Base64 e saída Hex/Base64/Base64URL. 100% no seu navegador — as chaves nunca saem da página.
Ferramentas de Segurança
Decodifique tokens JWT online com nosso decodificador JWT grátis. Inspecione cabeçalho, carga útil, assinatura, expiração e reivindicações. 100% navegador — seu token nunca sai do dispositivo. Sem cadastro, sem rastreio.
Ferramentas de Segurança
Gerador e codificador JWT online grátis. Monte o cabeçalho e a carga útil, assine com HS256, RS256 ou ES256 instantaneamente. 100% no navegador — seu segredo e sua chave nunca saem do dispositivo.