O que é uma função hash
Uma função hash transforma qualquer quantidade de dados de entrada, seja uma palavra ou um arquivo inteiro, em uma sequência de tamanho fixo chamada de hash ou digest. A mesma entrada sempre gera exatamente o mesmo hash, uma pequena mudança na entrada gera um hash completamente diferente, e não é possível reconstruir os dados originais a partir do hash.
Diferença entre os algoritmos
MD5 produz um hash de 128 bits (32 caracteres hexadecimais) e é o mais rápido, mas também o menos seguro. SHA-1 produz 160 bits e também é considerado inseguro para fins criptográficos. SHA-256 produz 256 bits e é hoje o padrão mais usado para verificação de integridade e assinaturas digitais. SHA-384 e SHA-512 produzem hashes ainda maiores, de 384 e 512 bits, usados quando é necessário um nível extra de segurança.
Hash não é criptografia
Diferente da criptografia, uma função hash não pode ser revertida: não existe uma "senha" ou "chave" que transforme o hash de volta no texto original. Por isso, hashes são usados para verificar integridade (conferir se um arquivo não foi alterado) e para armazenar senhas de forma segura, comparando o hash da senha digitada com o hash salvo, sem nunca guardar a senha em texto puro.
MD5 e SHA-1 não são seguros para senhas
Apesar de ainda aparecerem em muitos sistemas legados, MD5 e SHA-1 são considerados criptograficamente quebrados: pesquisadores já demonstraram como gerar duas entradas diferentes com o mesmo hash (uma colisão), o que compromete seu uso em contextos de segurança. Para verificação de integridade de arquivos, ainda são aceitáveis. Mas para armazenar senhas, o recomendado é usar algoritmos específicos para isso, como bcrypt, scrypt ou Argon2, que são propositalmente lentos para dificultar ataques de força bruta.
Verificando a integridade de um arquivo baixado
Um uso comum de hash é conferir se um arquivo baixado da internet não foi corrompido durante a transferência ou alterado por terceiros. Sites confiáveis costumam publicar o hash SHA-256 de seus arquivos de instalação. Depois de calcular o hash do arquivo baixado e compará-lo com o valor publicado usando a terceira calculadora desta página, uma correspondência confirma que o arquivo está íntegro.