O que é um checksum (soma de verificação)?
Um checksum (soma de verificação) é um valor curto calculado a partir de um bloco de dados, como um arquivo ou um pacote de rede, e armazenado ou enviado junto com ele. Calcular de novo mais tarde e comparar os dois valores mostra se os dados mudaram por corrupção ou por um erro de transmissão.
Atualizado em 24 de setembro de 2026
| Checksum | Enviado | Recebido | Resultado |
|---|---|---|---|
| Soma dos bytes (mod 256) | 0C | 0C | Igual |
| CRC-32 | 219971C0 | 219971C0 | Igual |
Inverta um bit e os dois checksums mudam. Troque dois caracteres e todos os bytes continuam lá, então a soma é a mesma: só o CRC-32, que depende da ordem, percebe.
Distribuições Linux como Ubuntu e Debian publicam um arquivo chamado SHA256SUMS ao lado das imagens de instalação. Cada linha tem uma string de 64 caracteres e um nome de arquivo. Quando o download termina, você executa um comando no arquivo que recebeu. Se ele imprimir a mesma string, todos os bilhões de bytes chegaram intactos. Se um único bit se inverteu no caminho, a string sai completamente diferente.
Essa string é um checksum: um pequeno resumo que muda quando os dados mudam.
Como um checksum funciona, passo a passo
- O remetente executa um algoritmo de checksum sobre os dados, byte por byte, e obtém um resultado curto.
- O resultado viaja ou é armazenado junto com os dados: no cabeçalho de um pacote de rede, dentro de um arquivo ZIP ao lado de cada arquivo compactado, ou em uma página de download.
- O destinatário executa o mesmo algoritmo sobre os dados que realmente recebeu.
- Os dois resultados são comparados. Se forem iguais, os dados quase certamente não mudaram. Se forem diferentes, os dados foram danificados, e o destinatário os rejeita, pede de novo ou mostra um erro de checksum.
Um checksum só detecta o dano; ele não diz qual byte mudou nem o repara. Para reparar é preciso um código corretor de erros, como os códigos Reed-Solomon dos CDs e dos QR codes.
O checksum mais simples soma todos os bytes e guarda os últimos 8 bits do total. Execute isto para ver onde essa ideia funciona e onde falha:
original sum= 78 crc32=a1628836
flipped sum= 80 crc32=a597580b
swapped sum= 78 crc32=59dbf74b
Mudar um caractere muda a soma. Trocar dois caracteres de lugar não muda, porque a adição não se importa com a ordem, então a soma de bytes aprova um pagamento de 10 em vez de 100. O CRC-32 (verificação de redundância cíclica) trata os dados como um único número binário longo e o divide por um polinômio fixo de 33 bits; o resto de 32 bits depende de onde cada bit está, então a troca é detectada. A demonstração acima deixa você testar isso com o seu próprio texto. O CRC-32 detecta toda rajada de erros de até 32 bits de comprimento.
Algoritmos de checksum comuns
| Algoritmo | Tamanho | Onde você o encontra |
|---|---|---|
| Bit de paridade | 1 bit | Conexões seriais, memória com paridade |
| Dígito verificador de Luhn | 1 dígito | Números de cartão de crédito, números IMEI |
| Checksum da internet | 16 bits | Cabeçalhos IPv4, TCP e UDP |
| Adler-32 | 32 bits | O formato compactado zlib |
| CRC-32 | 32 bits | ZIP, gzip, PNG, quadros Ethernet |
| MD5 | 128 bits | Páginas de download antigas, localizadores de arquivos duplicados |
| SHA-256 | 256 bits | Downloads de software, imagens Linux, Bitcoin |
Os cinco primeiros detectam acidentes, não atacantes. Quem edita um arquivo consegue ajustar alguns bytes para que o CRC-32 volte a bater. MD5 e SHA-256 são funções de hash criptográficas, projetadas para que encontrar duas entradas com a mesma saída seja inviável. O MD5 já foi quebrado (colisões foram publicadas em 2004), assim como o SHA-1 (2017), então downloads sensíveis à segurança usam SHA-256 ou algo mais forte. O MD5 ainda detecta corrupção acidental perfeitamente bem.
Como verificar um checksum
No seu próprio computador, cada sistema operacional tem um comando embutido:
# Windows (PowerShell)
Get-FileHash ubuntu.iso -Algorithm SHA256
# macOS
shasum -a 256 ubuntu.iso
# Linux
sha256sum ubuntu.iso
Compare a saída com o valor da página oficial de download; letras maiúsculas ou minúsculas não fazem diferença. Em Python, o hashlib faz a mesma verificação, lendo o arquivo em pedaços para que um arquivo de 6 GB nunca precise caber na memória:
a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
OK
Troque hello world por hello World e execute de novo: todos os caracteres do checksum mudam, e a última linha diz Checksum mismatch.
O que é um erro de checksum?
Um erro de checksum significa que a verificação falhou: o valor calculado a partir dos dados que você tem não bate com o valor armazenado ou enviado junto com eles. Ou os dados mudaram, ou o checksum armazenado foi danificado. A mensagem e a solução dependem de onde ele aparece.
Erro de checksum da CMOS ou da BIOS ao ligar o computador
O firmware de um PC (BIOS ou UEFI) guarda as configurações, como a ordem de boot e o relógio, em uma pequena memória mantida por uma bateria tipo moeda, geralmente uma CR2032, enquanto o computador está desligado da tomada. Um checksum dessas configurações é armazenado ao lado delas. A cada inicialização o firmware o recalcula, e se os valores forem diferentes ele mostra uma mensagem como CMOS Checksum Error - Defaults Loaded e volta às configurações de fábrica.
A causa mais comum é uma bateria fraca ou descarregada, principalmente quando o relógio também volta ao início. Uma queda de energia enquanto as configurações eram salvas, ou limpar a CMOS com um jumper, tem o mesmo efeito. Para corrigir:
- Abra a tela de configuração (geralmente Delete ou F2 enquanto o PC liga), acerte a data, a hora e as configurações que você tinha mudado, depois salve e saia (muitas vezes F10). Se a mensagem não voltar, foi um evento isolado.
- Se ela voltar a cada inicialização a frio, desligue, tire o computador da tomada e troque a bateria CR2032.
- Se a mensagem citar o próprio firmware, como
BIOS ROM checksum errorouMain BIOS checksum error, a imagem do firmware está danificada. Placas com um chip de BIOS reserva a restauram automaticamente; nas outras, use o recurso de recuperação de BIOS da placa ou grave o firmware de novo a partir do site do fabricante, sem cortar a energia durante a atualização.
Checksum que não bate depois de um download
O SHA-256 do seu arquivo não bate com o da página de download. O arquivo pode estar incompleto ou corrompido (uma conexão interrompida, um disco cheio), você pode estar comparando com o checksum de outro arquivo (outra versão ou outra arquitetura de CPU), ou pode estar comparando dois algoritmos diferentes: um valor MD5 tem 32 caracteres hexadecimais, um SHA-256 tem 64. Raramente, o arquivo foi adulterado.
Confira o algoritmo e o nome do arquivo e baixe o arquivo de novo do site oficial. Se uma cópia nova da fonte oficial ainda não bater, não a execute. Os gerenciadores de pacotes fazem essa verificação por você: o pip para com THESE PACKAGES DO NOT MATCH THE HASHES quando um pacote baixado é diferente do hash fixado.
Erro de checksum em um arquivo ZIP, RAR ou 7z
Os formatos de arquivo compactado guardam um CRC-32 do conteúdo original de cada arquivo. Quando você extrai, a ferramenta o recalcula; o WinRAR informa uma divergência como Checksum error e o 7-Zip como CRC Failed. Em um arquivo criptografado, uma senha errada produz a mesma mensagem, porque uma senha errada descriptografa para lixo. Baixe o arquivo de novo, confira se todas as partes de um arquivo dividido (.part1.rar, .part2.rar) estão presentes e vêm do mesmo upload, e digite a senha outra vez. O comando Reparar arquivo do WinRAR funciona melhor em arquivos criados com registro de recuperação, e a opção "Manter arquivos danificados" guarda o que foi extraído corretamente.
Erros de checksum em jogos e ferramentas de rede
Os jogos comparam os checksums dos seus arquivos, então uma atualização parcial ou um arquivo alterado falha na verificação. Na Steam, "Verificar integridade dos arquivos do jogo" baixa de novo todo arquivo cujo checksum não bate. No Wireshark, avisos de checksum em pacotes que o seu próprio computador envia geralmente não são erros reais: a placa de rede preenche o checksum depois que o Wireshark já capturou o pacote.
Equívocos comuns
- "Um checksum que bate prova que o arquivo é seguro." Ele prova que o arquivo corresponde ao valor publicado. Se um atacante controla o site, ele pode mudar os dois, e é por isso que os projetos também assinam seus arquivos de checksum com uma chave.
- "Um checksum consegue consertar um arquivo corrompido." Ele só detecta o dano. A solução é conseguir uma cópia boa.
- "Checksum e hash são coisas diferentes." Checksum descreve a tarefa; uma função de hash como o SHA-256 é uma ferramenta que pode realizá-la.
Próximos passos
Calcule valores MD5, SHA-1 e SHA-256 de qualquer texto no gerador de hash. Os checksums trabalham com dados brutos, então o que é um byte e o que é um bit explicam o que está sendo somado de fato. Um banco de dados usa checksums de página para detectar corrupção no disco, e a visualização de tabela hash mostra outro uso de um valor curto calculado a partir dos dados.
Perguntas frequentes
O SHA-256 é um checksum?
Como corrigir um erro de checksum?
O que causa um erro de checksum?
Por que o checksum é necessário?
Como gerar um checksum?
sha256sum file no Linux, shasum -a 256 file no macOS ou Get-FileHash file no PowerShell do Windows. Em Python, hashlib.sha256(data).hexdigest() dá um checksum SHA-256 e zlib.crc32(data) um CRC-32.