Gerador de hash MD5, SHA-1, SHA-256 e SHA-512

Gere os hashes MD5, SHA-1, SHA-256 e SHA-512 de um texto ou de um arquivo do seu computador, todos de uma vez, em hexadecimal ou Base64. A ferramenta também calcula HMAC com chave secreta e compara o resultado com um hash esperado, indicando qual algoritmo bateu. O conteúdo é processado no seu navegador e não é enviado a nenhum servidor.

Origem

Exemplos:

O texto e o arquivo são processados no seu navegador e não são enviados. MD5 e SHA-1 não são seguros para senhas nem assinaturas; para guardar senhas use bcrypt, scrypt ou Argon2. Hash não é criptografia: não dá para "descriptografar" um hash.

    Como usar

    1. Escolha a origem: Texto (os hashes são atualizados enquanto você digita) ou Arquivo (selecione um arquivo de até 200 MB).
    2. Escolha o formato da saída: hexadecimal minúsculo, hexadecimal MAIÚSCULO ou Base64. Trocar o formato não recalcula nada, só muda a apresentação.
    3. Para assinar uma mensagem, marque Calcular HMAC com chave secreta e informe a chave.
    4. Se você tem o hash publicado pelo fornecedor ou registrado no teste, cole em Comparar com hash esperado. O algoritmo que bater fica destacado.
    5. Use Copiar em cada linha ou Copiar todos para levar os valores para o caso de teste ou o relatório.

    Exemplos

    Valores de referência para o texto abc (3 bytes), publicados na RFC 1321 (MD5) e nos exemplos do padrão FIPS 180 do NIST (família SHA):

    AlgoritmoTamanhoHash de abc (hex)
    MD5128 bits (32 hex)900150983cd24fb0d6963f7d28e17f72
    SHA-1160 bits (40 hex)a9993e364706816aba3e25717850c26c9cd0d89d
    SHA-256256 bits (64 hex)ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
    SHA-512512 bits (128 hex)ddaf35a193617aba…a54ca49f (128 caracteres)

    Para HMAC, um caso clássico da RFC 2202 e da RFC 4231: chave Jefe e mensagem what do ya want for nothing? geram o HMAC-SHA-256 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.

    Hash não é criptografia

    Um hash é uma impressão digital de tamanho fixo: o mesmo conteúdo gera sempre o mesmo valor, e qualquer alteração, mesmo de um único bit, gera um valor completamente diferente. Não existe chave nem caminho de volta, então não dá para “descriptografar” um hash.

    MD5 e SHA-1 não são seguros contra colisões. A RFC 6151 afirma que o MD5 não é mais aceitável onde se exige resistência a colisões, como em assinaturas digitais, e o NIST anunciou a retirada do SHA-1, que deve ser abandonado até 31/12/2030 em favor do SHA-2 e do SHA-3. Eles continuam úteis para detectar corrupção acidental, mas não para segurança.

    Nenhum hash rápido serve para guardar senhas, nem o SHA-256. Senhas devem ser armazenadas com algoritmos lentos e com salt, feitos para isso: bcrypt, scrypt ou Argon2. Se você encontrar senha em MD5 ou SHA puro no banco durante um teste, registre como achado de segurança.

    Como funciona

    O texto é convertido em bytes UTF-8 com TextEncoder; o arquivo é lido com FileReader diretamente do seu disco, sem upload. SHA-1, SHA-256 e SHA-512 são calculados pela Web Crypto API do navegador (crypto.subtle.digest). Como a Web Crypto não oferece MD5, ele é calculado por uma implementação própria em JavaScript, conferida com os vetores de teste oficiais da RFC 1321 e processada em blocos para não travar a página com arquivos grandes.

    No modo HMAC (RFC 2104), as versões SHA usam crypto.subtle.sign com uma chave HMAC importada a partir do texto que você digitou (em UTF-8); o HMAC-MD5 usa a mesma implementação de MD5. A comparação aceita hexadecimal sem diferenciar maiúsculas de minúsculas, com ou sem espaços e dois-pontos entre os bytes, prefixos como sha256:, além de Base64, Base64URL e o formato sha256-… do Subresource Integrity. Em Base64 a comparação diferencia maiúsculas, porque ali a caixa da letra muda o valor.

    Uso em QA e desenvolvimento

    • Conferir a integridade de um build, APK ou instalador comparando com o checksum publicado no release.
    • Validar que um arquivo baixado pela aplicação, como relatório, exportação ou anexo, é idêntico ao enviado.
    • Reproduzir a assinatura HMAC de webhooks e APIs (por exemplo, um cabeçalho de assinatura com HMAC-SHA-256 do corpo) e descobrir por que a validação falha.
    • Verificar se o sistema grava senhas com hash rápido, o que é um defeito de segurança.

    Erros comuns

    • Quebra de linha invisível: echo "abc" | sha256sum calcula o hash de abc seguido de quebra de linha. Use echo -n ou printf. No Windows, arquivos com CRLF geram hash diferente dos mesmos arquivos com LF.
    • Codificação diferente: “ação” em UTF-8 e em Latin-1 são bytes diferentes e, portanto, hashes diferentes. Esta ferramenta usa sempre UTF-8 para texto.
    • Comparar hex com Base64: são o mesmo hash em representações diferentes. O SHA-256 tem 64 caracteres em hex e 44 em Base64.
    • HMAC não é hash da chave junto com a mensagem: concatenar chave e texto e aplicar SHA-256 não produz o HMAC. A chave também precisa ser exatamente a mesma, sem espaços extras.

    Limitações

    • Arquivos de até 200 MB, porque o arquivo é carregado inteiro na memória do navegador. Para arquivos maiores, use sha256sum, md5sum ou Get-FileHash no PowerShell.
    • Texto de até 2 milhões de caracteres; acima de 200 mil, clique em Gerar hashes em vez de esperar a atualização automática.
    • A chave do HMAC é tratada como texto UTF-8; chaves em hexadecimal ou Base64 não são decodificadas antes do uso.
    • A Web Crypto API exige página em HTTPS. Sem ela, apenas o MD5 é calculado e a ferramenta avisa.
    • SHA-224, SHA-384, SHA-3 e outros algoritmos não estão incluídos.

    Perguntas frequentes

    Dá para descobrir o texto original a partir do hash?

    Não por cálculo: o hash é de mão única. O que existe são tabelas de hashes de senhas e palavras comuns; por isso um MD5 de “123456” é encontrado em segundos, enquanto um texto longo e aleatório não é.

    Por que o hash do meu terminal é diferente do daqui?

    Quase sempre é uma quebra de linha no final, espaços, codificação diferente de UTF-8 ou CRLF em vez de LF. Teste com o arquivo em vez do texto colado para eliminar diferenças de cópia.

    Qual algoritmo devo usar?

    Para integridade e assinaturas, SHA-256 ou SHA-512. Use MD5 e SHA-1 só quando um sistema legado exigir. Para senhas, nenhum deles: use bcrypt, scrypt ou Argon2.

    Meu arquivo é enviado para algum servidor?

    Não. O arquivo é lido localmente pelo navegador, e o cálculo acontece no JavaScript da página.

    Ferramentas relacionadas

    Para aprofundar, veja os guias APIs testáveis: contrato e erros e massa de dados e ambientes de teste.

    Referências