Última atualização: 8 de setembro de 2026

Gerador de Hash

MD5, SHA-1, SHA-256, SHA-384 e SHA-512 de um texto, calculados no navegador.

Como usar o Gerador de Hash

  1. 1Digite ou cole o texto. Os 5 hashes são calculados automaticamente, a cada tecla.
  2. 2Copie o hash que precisar. Use o botão de copiar ao lado de cada resultado.

Para que serve gerar hash em teste de software

Um hash transforma qualquer texto em uma sequência de tamanho fixo que muda completamente se um único caractere da entrada mudar. Em QA, isso aparece em situações bem concretas: conferir se o checksum de um arquivo baixado bate com o esperado, gerar a assinatura de uma requisição de webhook para testar a validação do outro lado, comparar dois arquivos grandes pelo hash em vez de byte a byte, ou testar se um sistema realmente armazena senha como hash e não em texto puro. Esta ferramenta calcula os cinco algoritmos mais usados de uma vez, para não precisar trocar de aba a cada teste.

Sobre segurança: MD5 e SHA-1 são considerados criptograficamente quebrados para uso em senhas ou assinaturas de segurança (existem ataques práticos de colisão para os dois), mas continuam amplamente usados para checksum e verificação de integridade de arquivo, onde colisão intencional não é uma ameaça real. Para armazenar senha, o padrão atual é usar bcrypt, scrypt ou Argon2, nunca um hash genérico como os desta ferramenta, mesmo o SHA-512.

Exemplo de código: SHA-256 nativo do navegador

async function sha256(texto) {
  const bytes = new TextEncoder().encode(texto);
  const buffer = await crypto.subtle.digest('SHA-256', bytes);
  return Array.from(new Uint8Array(buffer))
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');
}

sha256('teste').then(console.log);
// -> string hexadecimal de 64 caracteres

SHA-1, SHA-256, SHA-384 e SHA-512 usam a Web Crypto API nativa do navegador (crypto.subtle.digest), a mesma implementação usada por qualquer biblioteca de criptografia do próprio navegador. O MD5 é uma exceção: o algoritmo não está disponível nessa API (por já ser considerado obsoleto para uso criptográfico), então esta ferramenta usa uma implementação própria em JavaScript, conferida contra os vetores de teste oficiais do RFC 1321 antes de entrar no ar.

Casos de teste sugeridos

  • Gerar o hash de uma string vazia e comparar com um valor de referência conhecido (o MD5 de uma string vazia é sempre d41d8cd98f00b204e9800998ecf8427e), útil para conferir se uma implementação própria está correta.
  • Gerar o hash do mesmo texto duas vezes seguidas, confirmando que o resultado é sempre idêntico (determinístico) — qualquer hash criptográfico deve se comportar assim.
  • Alterar um único caractere do texto de entrada e comparar os hashes, observando que o resultado muda completamente, sem nenhuma semelhança visual com o hash anterior (efeito avalanche).
  • Comparar o hash gerado aqui com o de uma biblioteca do seu backend (Node, Python, Java) para o mesmo texto, garantindo que os dois lados calculam exatamente o mesmo valor antes de confiar em um teste automatizado.

Perguntas Frequentes

O texto digitado aqui é enviado para algum servidor?

Não. Todos os hashes são calculados no seu navegador — SHA-1/256/384/512 pela Web Crypto API nativa, e MD5 por uma implementação em JavaScript local. Nada é enviado ou armazenado.

Por que o MD5 e o SHA-1 aparecem se são "inseguros"?

Porque continuam sendo usados legitimamente para checksum de arquivos e verificação de integridade, onde a fraqueza contra colisão intencional não é relevante. Para senha ou assinatura de segurança, use SHA-256/512 ou, melhor ainda, um algoritmo específico para senha como bcrypt.

Dois textos diferentes podem gerar o mesmo hash?

Em teoria sim (chamado de colisão), mas para MD5 e SHA-1 isso já foi demonstrado na prática com esforço computacional significativo. Para SHA-256 em diante, nenhuma colisão é conhecida até hoje.

Copiado com sucesso!