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.
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
- Escolha a origem: Texto (os hashes são atualizados enquanto você digita) ou Arquivo (selecione um arquivo de até 200 MB).
- 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.
- Para assinar uma mensagem, marque Calcular HMAC com chave secreta e informe a chave.
- Se você tem o hash publicado pelo fornecedor ou registrado no teste, cole em Comparar com hash esperado. O algoritmo que bater fica destacado.
- 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):
| Algoritmo | Tamanho | Hash de abc (hex) |
|---|---|---|
| MD5 | 128 bits (32 hex) | 900150983cd24fb0d6963f7d28e17f72 |
| SHA-1 | 160 bits (40 hex) | a9993e364706816aba3e25717850c26c9cd0d89d |
| SHA-256 | 256 bits (64 hex) | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
| SHA-512 | 512 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" | sha256sumcalcula o hash deabcseguido de quebra de linha. Useecho -nouprintf. 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,md5sumouGet-FileHashno 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
- Codificador e decodificador Base64: converta textos e entenda a saída em Base64.
- Decodificador de JWT: inspecione tokens assinados com HS256 (HMAC-SHA-256).
- Conversor de cURL: reproduza a requisição que carrega a assinatura.
- Comparador de textos: encontre o caractere que mudou quando dois hashes não batem.
Para aprofundar, veja os guias APIs testáveis: contrato e erros e massa de dados e ambientes de teste.
