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.