O Que É um Checksum? Verificação de Integridade de Dados Explicada
Um checksum é um valor curto calculado a partir de um bloco de dados que permite verificar se os dados não foram corrompidos ou alterados.
Um checksum é um fingerprint dos dados. Você o calcula a partir de um arquivo, e qualquer um que depois o recalcule pode confirmar que o arquivo é idêntico byte por byte. Checksums são a espinha dorsal da integridade no CI: verificam downloads, validam caches e detectam quando um artifact foi adulterado ou corrompido em trânsito.
O que é um checksum
Um checksum é um valor de tamanho fixo derivado dos dados de entrada por um algoritmo definido. Mude apenas um byte da entrada e o checksum muda. Ao comparar um checksum recém-calculado com um conhecido como bom, você verifica que os dados estão íntegros sem inspecioná-los diretamente.
Integridade versus segurança
Checksums simples (como CRC32) pegam corrupção acidental mas são fáceis de forjar, então protegem contra erros de transmissão, não contra atacantes. Hashes criptográficos como SHA-256 são projetados para que um atacante não consiga criar dados diferentes com o mesmo checksum, que é o que você precisa para segurança.
Como os checksums são usados
Um publicador calcula um checksum de um release e o divulga junto ao arquivo. Depois de baixar, você recalcula o checksum e compara. Se combinarem, o arquivo chegou íntegro e inalterado. Gerenciadores de pacotes e lockfiles automatizam isso para cada dependência que você instala.
Checksums no CI
O CI se apoia em checksums em toda parte: verificar uma ferramenta baixada antes de rodá-la, derivar uma chave de cache do hash de um lockfile para que o cache invalide quando as dependências mudarem, e confirmar que um artifact construído corresponde ao que foi publicado. Uma divergência deve fazer o build falhar de forma explícita.
# Cache key from a lockfile checksum in GitHub Actions
steps:
- uses: actions/cache@v4
with:
path: ~/.npm
key: npm-${{ hashFiles('package-lock.json') }}Nota Latchkey
O caching do Latchkey usa hashes de conteúdo para chavear e validar entradas de cache, então uma restauração de cache só tem sucesso quando os bytes armazenados correspondem ao checksum esperado - o mesmo princípio de integridade, aplicado para manter builds aquecidos corretos.
Principais conclusões
- Um checksum é um fingerprint calculado a partir de dados que revela qualquer mudança neles.
- Checksums simples pegam corrupção acidental; hashes criptográficos resistem a adulteração deliberada.
- O CI usa checksums para verificar downloads, chavear caches a partir de lockfiles e confirmar a integridade de artifacts.