GeradoresOnline

MD5, SHA-1 e SHA-256: qual usar e para quê

Diferenças entre MD5, SHA-1 e SHA-256, quando cada hash serve, por que não devem guardar senhas e quais algoritmos usar no lugar.

Por Equipe L9 · Publicado em 23/09/2026 · 4 min de leitura

MD5, SHA-1 e SHA-256 aparecem em downloads, em sistemas de versionamento, em APIs e, infelizmente, em muito código que guarda senhas. Todos são funções de hash, mas seus usos adequados são bem diferentes hoje. Este guia explica o que um hash faz, compara os três algoritmos e mostra por que nenhum deles, sozinho, é a forma certa de armazenar uma senha.

O que é uma função de hash

Uma função de hash recebe uma entrada de qualquer tamanho e devolve uma saída de tamanho fixo, chamada hash ou resumo. Uma boa função criptográfica tem as seguintes propriedades:

  • Determinística: a mesma entrada sempre gera o mesmo hash.
  • Efeito avalanche: mudar um único caractere da entrada muda o hash inteiro.
  • Sem volta: a partir do hash não se recupera a entrada de forma prática.
  • Resistente a colisões: deve ser inviável encontrar duas entradas diferentes com o mesmo hash.

Veja o efeito avalanche no SHA-256: o hash de hello é 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824, e o de hellp (uma letra diferente) começa com fdd7585e08c4e2afd71d e não se parece em nada com o anterior.

Comparando os três

MD5

Gera 128 bits, exibidos como 32 caracteres hexadecimais. O hash de hello é 5d41402abc4b2a76b9719d911017c592. Está quebrado para uso em segurança: colisões práticas são conhecidas desde 2004, o que permite fabricar dois arquivos diferentes com o mesmo MD5. Ainda é usado como checksum não adversarial (conferir se um download veio íntegro contra corrupção acidental) e como chave de cache, mas não deve servir para assinaturas, certificados ou qualquer contexto em que alguém possa querer forjar dados.

SHA-1

Gera 160 bits (40 caracteres hexadecimais); o hash de hello é aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d. Em 2017, pesquisadores do Google e do CWI publicaram a primeira colisão real (o ataque "SHAttered"), e navegadores e autoridades certificadoras abandonaram o SHA-1 em certificados. Sobrevive em sistemas legados; o Git, por exemplo, identifica objetos por SHA-1 (com proteções extras contra colisões conhecidas) e caminha para o SHA-256.

SHA-256

Faz parte da família SHA-2 e gera 256 bits (64 caracteres hexadecimais). Não há colisão prática conhecida, e é a escolha padrão atual para verificação de integridade, assinaturas digitais, certificados e blockchains. Seus irmãos maiores, como o SHA-512, oferecem saídas mais longas com o mesmo desenho.

Qual usar para cada tarefa

  • Conferir integridade de arquivos: SHA-256. MD5 e SHA-1 só se o outro lado não oferecer nada melhor e não houver risco de adulteração.
  • Assinaturas e certificados: SHA-256 ou superior.
  • Detectar erro de transmissão: um CRC como o CRC32 é rápido e suficiente, mas não protege contra adulteração intencional.
  • Autenticar mensagens: HMAC (um hash combinado com uma chave secreta), e não o hash puro.
  • Chaves de cache e deduplicação sem risco de segurança: qualquer um serve, e o mais rápido costuma ganhar.

Por que não usar esses hashes para senhas

Aqui está o erro mais comum. Guardar SHA-256(senha) parece seguro, mas não é, e o motivo é a velocidade: esses algoritmos foram feitos para ser rápidos. Uma placa de vídeo moderna calcula bilhões de hashes por segundo, o que torna viável testar listas gigantes de senhas prováveis contra um banco vazado. Além disso, sem um salt (um valor aleatório único por usuário), duas pessoas com a mesma senha teriam o mesmo hash e tabelas pré-calculadas (as "rainbow tables") quebrariam tudo de uma vez.

Para senhas, use algoritmos projetados para serem lentos e caros de propósito: Argon2id, bcrypt, scrypt ou PBKDF2 com muitas iterações, sempre com salt individual. As bibliotecas de autenticação modernas já fazem isso corretamente; o papel do desenvolvedor é usar a função certa, e não montar a sua. Para entender o quanto o comprimento e a aleatoriedade da senha importam, veja Senhas fortes: comprimento, entropia e o que o NIST recomenda.

Hash não é criptografia nem codificação

Um hash não pode ser "desfeito", enquanto a criptografia é reversível com a chave e a codificação (como o Base64) é reversível por qualquer um. A diferença entre os três conceitos está no guia Base64 não é criptografia.

Uma observação sobre ferramentas online

Ao usar qualquer gerador de hash na internet, evite colar segredos reais, como senhas de produção ou chaves de API. Use textos de teste. Nas ferramentas deste site, você pode gerar o MD5, o SHA-1, o SHA-256 e o SHA-512 de um texto para comparar os resultados com os exemplos deste guia.

Ferramentas relacionadas

Continue lendo

Gostou das ferramentas? Ajude a manter o site no ar: apoiar via Pix · Sobre · Contato · Política de Privacidade