O que é e para que serve
Hash é uma função que transforma qualquer texto em uma sequência de caracteres de tamanho fixo, de forma que o mesmo texto sempre produz o mesmo hash, e qualquer mudança mínima no texto original produz um hash completamente diferente. É usado para verificar integridade de arquivos, armazenar senhas com segurança (combinado com outras técnicas) e gerar identificadores determinísticos. Essa ferramenta calcula o hash de um texto nos algoritmos SHA-1, SHA-256, SHA-384 e SHA-512 simultaneamente.
Como usar
- Digite ou cole o texto na caixa.
- Os quatro hashes (SHA-1, SHA-256, SHA-384, SHA-512) são calculados automaticamente.
- Copie o hash do algoritmo que você precisar.
Exemplos práticos
Conferir download. Muitos projetos publicam o SHA-256 do arquivo. Gerando o hash do arquivo baixado e comparando com o publicado, você confirma que ele não foi corrompido nem adulterado.
Detectar mudança em texto. Guarde o SHA-256 de um documento. Se qualquer caractere mudar — inclusive um espaço —, o hash muda completamente.
Efeito avalanche. O hash de "senha" e o de "senhb" não têm nenhuma semelhança visível, apesar da diferença de uma letra. Isso é proposital: impede deduzir o original a partir de hashes parecidos.
Deduplicação. Comparando hashes em vez de conteúdo inteiro, dá para descobrir arquivos idênticos rapidamente.
Assinatura de webhook. Muitos serviços assinam o corpo do webhook com HMAC-SHA256. Conferir a assinatura confirma que a chamada veio mesmo de quem diz ser.
Tamanho de cada algoritmo
| Algoritmo | Tamanho do hash | Situação |
|---|---|---|
| SHA-1 | 160 bits (40 hex) | Quebrado, só por compatibilidade |
| SHA-256 | 256 bits (64 hex) | Padrão atual |
| SHA-384 | 384 bits (96 hex) | Margem extra |
| SHA-512 | 512 bits (128 hex) | Margem extra |
Detalhes e limitações
O cálculo usa a Web Crypto API nativa do navegador (crypto.subtle.digest), a mesma implementação usada por navegadores para operações criptográficas sensíveis — não uma reimplementação em JavaScript puro. SHA-1 é considerado criptograficamente fraco hoje (vulnerável a ataques de colisão) e não deve ser usado para segurança, apenas para checagens simples de integridade ou compatibilidade com sistemas legados. SHA-256 é o padrão mais usado atualmente para a maioria dos casos; SHA-384 e SHA-512 oferecem uma saída maior, usada em contextos que exigem margem de segurança extra.
Importante: hash não é criptografia reversível — não existe forma de "descriptografar" um hash de volta ao texto original. Também não é a forma correta de armazenar senhas sozinho, sem técnicas adicionais como salt e um algoritmo específico para senhas (bcrypt, Argon2, scrypt), que são propositalmente lentos para dificultar ataques de força bruta.
Erros comuns
Usar hash simples para guardar senha. Este é o erro mais grave e mais comum. SHA-256 foi feito para ser rápido, e velocidade é exatamente o que ajuda o atacante: hardware dedicado testa bilhões de tentativas por segundo. Para senha, use bcrypt, scrypt ou Argon2, que são propositalmente lentos e incorporam salt.
Achar que hash é criptografia. Criptografia é reversível com a chave; hash não é reversível de forma alguma. Não existe "descriptografar um hash".
Continuar usando SHA-1. Já foram demonstradas colisões práticas — dois conteúdos diferentes com o mesmo SHA-1. Ele permanece aqui só para compatibilidade com sistemas antigos.
Comparar hashes com == comum em código de segurança. Comparação que sai no primeiro byte diferente vaza informação de tempo. Em verificação de assinatura, use comparação de tempo constante.
Esquecer que a codificação muda o hash. O mesmo texto em UTF-8 e em ISO-8859-1 produz hashes diferentes, porque os bytes são diferentes. Ao comparar com outro sistema, confirme a codificação.
Confundir hash com HMAC. HMAC combina hash com uma chave secreta e serve para autenticar. Hash puro só verifica integridade.
Perguntas frequentes
Dá para reverter um hash de volta ao texto original?
Não. Hash é uma função de mão única — a única forma prática de "quebrar" um hash é testar textos possíveis até encontrar um que gere o mesmo resultado, o que é inviável para textos longos e aleatórios.
Qual algoritmo devo usar?
Para a maioria dos usos atuais, SHA-256 é o padrão recomendado. SHA-1 só deve ser usado quando exigido por compatibilidade com sistemas antigos, nunca para segurança.
Essa ferramenta serve para gerar hash de senhas para um sistema de login?
Não é recomendado. Para senhas, use algoritmos específicos com salt, como bcrypt ou Argon2, implementados no backend — hash genérico como SHA-256 sozinho não protege bem contra ataques de força bruta em senhas.
Posso usar SHA-256 para guardar senhas de usuários?
Não. Ele é rápido demais, o que favorece ataques de força bruta. Para senha, use bcrypt, scrypt ou Argon2, que são lentos de propósito e já incorporam salt.
Dá para reverter um hash?
Não. Hash é função de mão única. O que existe são tabelas com hashes de senhas comuns já calculados — outro motivo para usar salt em senhas.
SHA-1 ainda é seguro?
Não para uso criptográfico. Colisões práticas já foram demonstradas. Ele só deve ser usado por compatibilidade com sistemas legados.
Qual a diferença entre hash e HMAC?
HMAC combina o hash com uma chave secreta, o que permite verificar não só integridade mas também autenticidade. Hash puro verifica apenas se o conteúdo mudou.