hashlib expõe algoritmos de hash criptográfico como SHA-256. O digest funciona como uma impressão do conteúdo: qualquer byte alterado tende a produzir outro resultado, o que ajuda a verificar downloads e detectar corrupção.

from hashlib import sha256
from pathlib import Path

def sha256_arquivo(caminho: Path) -> str:
    digest = sha256()
    with caminho.open("rb") as arquivo:
        for bloco in iter(lambda: arquivo.read(1024 * 1024), b""):
            digest.update(bloco)
    return digest.hexdigest()

print(sha256_arquivo(Path("pacote.zip")))

Ler em blocos mantém o uso de memória estável mesmo em arquivos grandes. Compare o digest calculado com um valor obtido por um canal confiável. Se o atacante puder trocar tanto o arquivo quanto o hash publicado ao lado dele, a verificação não oferece autenticidade.

Boas práticas

Prefira algoritmos modernos aceitos pelo protocolo e não use MD5 ou SHA-1 para novas decisões de segurança. Hash não cifra dados e não pode ser revertido para recuperar o conteúdo. Para senhas, use uma função de derivação apropriada; para autenticar mensagens com segredo compartilhado, use HMAC e comparação em tempo constante.

Veja secrets em Python para gerar tokens e segurança de APIs Python para aplicar controles em contexto.

A documentação oficial de hashlib, consultada em 22 de julho de 2026, detalha a API e seus limites.