O que é um hash
Um hash é o resultado de uma função matemática que transforma um texto de qualquer tamanho em uma sequência de tamanho fixo (uma "impressão digital" do conteúdo). A menor mudança no texto original produz um hash completamente diferente, e não é possível reverter o hash para obter o texto original.
Diferenças entre os algoritmos
MD5 (128 bits) e SHA-1 (160 bits) são considerados criptograficamente quebrados para fins de segurança (é possível gerar colisões), mas ainda são amplamente usados para checar a integridade de arquivos. SHA-256 e SHA-512 (da família SHA-2) são os padrões atuais recomendados para segurança, usados em certificados digitais, blockchain e verificação de senhas.
Usos comuns
Verificar se um arquivo baixado não foi corrompido ou alterado (comparando o hash divulgado pelo site oficial), gerar identificadores determinísticos a partir de um texto, ou estudar como funcionam as funções de hash.
Como é calculado
O SHA-1, SHA-256 e SHA-512 são calculados usando a API nativa crypto.subtle do navegador (Web Crypto API); o MD5 usa uma implementação em JavaScript, já que não faz parte da API nativa do navegador. Todo o cálculo acontece localmente, sem enviar o texto a nenhum servidor.
Perguntas frequentes
É possível descobrir o texto original a partir do hash?
Não diretamente — hash é uma função de mão única. É possível, porém, tentar "quebrar" hashes fracos (como MD5) por força bruta ou tabelas pré-calculadas (rainbow tables) para textos curtos e previsíveis, como senhas comuns.
Qual algoritmo devo usar para guardar senhas?
Nenhum destes diretamente — para senhas, o recomendado são funções específicas para isso, como bcrypt, scrypt ou Argon2, que são propositalmente lentas para dificultar ataques de força bruta. MD5/SHA são rápidos demais para esse uso.