Menu
Coddy logo textTech

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.

Por Kevin Spektor, Cofundador e CTO

Atualizado em 24 de setembro de 2026

ChecksumEnviadoRecebidoResultado
Soma dos bytes (mod 256)0C0CIgual
CRC-32219971C0219971C0Igual

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

  1. O remetente executa um algoritmo de checksum sobre os dados, byte por byte, e obtém um resultado curto.
  2. 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.
  3. O destinatário executa o mesmo algoritmo sobre os dados que realmente recebeu.
  4. 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

AlgoritmoTamanhoOnde você o encontra
Bit de paridade1 bitConexões seriais, memória com paridade
Dígito verificador de Luhn1 dígitoNúmeros de cartão de crédito, números IMEI
Checksum da internet16 bitsCabeçalhos IPv4, TCP e UDP
Adler-3232 bitsO formato compactado zlib
CRC-3232 bitsZIP, gzip, PNG, quadros Ethernet
MD5128 bitsPáginas de download antigas, localizadores de arquivos duplicados
SHA-256256 bitsDownloads 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:

  1. 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.
  2. Se ela voltar a cada inicialização a frio, desligue, tire o computador da tomada e troque a bateria CR2032.
  3. Se a mensagem citar o próprio firmware, como BIOS ROM checksum error ou Main 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?
Sim, quando é usado para verificar dados. O SHA-256 é uma função de hash criptográfica, e o valor de 64 caracteres que ele gera para um arquivo é chamado comumente de checksum SHA-256 desse arquivo. Ele é mais lento que o CRC-32, mas também protege contra alterações intencionais, porque na prática ninguém consegue construir um arquivo diferente com o mesmo valor SHA-256.
Como corrigir um erro de checksum?
Depende de onde ele aparece. Na inicialização, abra a configuração da BIOS, confira a data e as configurações, salve e saia, e troque a bateria da CMOS (a pilha tipo moeda) se o erro voltar. Depois de um download ou em um arquivo compactado, baixe o arquivo de novo da fonte oficial e confira se todas as partes de um arquivo dividido estão presentes e se a senha está certa.
O que causa um erro de checksum?
Os dados mudaram entre o momento em que o checksum foi calculado e o momento em que foi verificado. As causas comuns são um download interrompido, um disco ou pen drive com defeito, uma bateria da CMOS fraca, uma queda de energia enquanto configurações ou firmware estavam sendo gravados e uma senha errada em um arquivo compactado criptografado.
Por que o checksum é necessário?
Armazenamento e redes não são perfeitos. Bits se invertem por ruído elétrico, interferência de rádio, memória flash desgastada ou discos com defeito, e sem uma verificação os dados danificados seriam usados em silêncio. Um checksum é uma forma barata de perceber o dano para que os dados sejam enviados de novo ou rejeitados.
Como gerar um checksum?
Execute um algoritmo de checksum sobre os dados. Para um arquivo, use 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.
Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR