Calculadora de hash
CriptoCalcula SHA-1/256/384/512 via Web Crypto e MD5. Saída em Hex ou Base64.
Nesta página
O que é um hash?#
Um hash criptográfico é uma impressão digital unidirecional para bytes arbitrários. Fornece-se uma mensagem de qualquer comprimento e obtém-se de volta um resumo de comprimento fixo que se comporta como uma assinatura dessa entrada exata: mude um único bit e a saída muda completamente. O hashing responde a duas perguntas práticas ao mesmo tempo — “estes dados mudaram?” e “posso referenciar estes dados por um id curto e estável?” — pelo que está na base de verificações de integridade de arquivos, endereçamento de conteúdo, desduplicação e armazenamento de senhas.
Esta página calcula cinco algoritmos: a família SHA-2 (SHA-256, SHA-384, SHA-512), SHA-1 e MD5. As quatro variantes SHA correm através do motor Web Crypto nativo do navegador (crypto.subtle.digest), o mesmo primitivo que o código de produção usa — não uma reimplementação em JavaScript. O MD5 não faz parte do Web Crypto, pelo que só é carregado a pedido quando o seleciona realmente, mantendo-o fora do download inicial da página.
Um hash não é encriptação. É irreversível: não se consegue reconstruir a entrada a partir do resumo. Se precisa que duas partes compartilhem um resumo com chave, use HMAC; se precisa de inverter a operação, use encriptação simétrica.
Como usar#
- Cole a sua entrada no painel da esquerda. Qualquer coisa textual — uma string, um blob JSON, um excerto de configuração. Os bytes são codificados como UTF-8 antes do hashing.
- Escolha o algoritmo:
- SHA-256 — a predefinição moderna; resumo de 256 bits, usado em todo o lado, do TLS ao Git ao blockchain.
- SHA-384 / SHA-512 — resumos mais longos da mesma família; escolha quando uma especificação os exige.
- SHA-1 — 160 bits; legado, serve para checksums, partido para assinaturas resistentes a colisões.
- MD5 — 128 bits; rápido e ubíquo mas criptograficamente partido. Útil para checksums não relacionados com segurança e chaves de cache legadas.
- Escolha a codificação de saída: hex (minúsculas, a convenção comum para resumos) ou base64 (mais compacto, comum em tokens).
- Clique em Exemplo para carregar a string de teste canónica, ou Limpar para recomeçar. O resumo atualiza-se em tempo real no painel da direita; Copiar recolhe-o.
Principais funcionalidades#
- Web Crypto nativo. SHA-1/256/384/512 são calculados por
crypto.subtle.digest— a implementação auditada do navegador, não uma biblioteca de terceiros. - MD5 preguiçoso. A implementação MD5 só é procurada quando a seleciona, pelo que nunca pesa na primeira renderização.
- Hex ou base64. Alternar com um clique sem reescrever.
- Linha de estado em tempo real. Confirma o algoritmo e o comprimento em bytes do resumo, pelo que um resultado truncado ou off-by-one é óbvio.
- Zero envios. O hashing acontece inteiramente no seu navegador; a entrada nunca chega a um servidor.
Exemplo prático#
A string canónica de referência é The quick brown fox jumps over the lazy dog. Com o algoritmo definido como SHA-256 e saída hex, o resumo é:
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
A mesma string sob SHA-1 (hex):
2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
Um caso útil é a string vazia. Fazer hash de nada absolutamente ainda produz um resumo bem definido e não vazio — para SHA-256 é e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855, e para MD5 é d41d8cd98f00b204e9800998ecf8427e. Estes vetores de entrada vazia são também como a própria suíte de testes desta ferramenta verifica a correção — se a sua saída difere, a página foi adulterada.
FAQ#
SHA-256 ou MD5 — qual escolho?#
SHA-256 para tudo o que toca segurança: esquemas de sal em senhas, URLs assinadas, provas de integridade, ids de conteúdo que têm de resistir a ataques de colisão. MD5 é aceitável apenas para checksums não adversariais (uma verificação rápida “este arquivo mudou?”, uma chave de cache) onde ninguém está tentando forjar uma colisão. Se não tem a certeza, prefira SHA-256.
Porque é que a mesma entrada dá sempre o mesmo resumo?#
O hashing é determinístico — não há sal aleatório envolvido nesta camada (ao contrário do bcrypt). Esse determinismo é todo o ponto do endereçamento de conteúdo: os mesmos bytes têm de produzir sempre a mesma impressão digital. O lado negativo é que duas pessoas que façam hash do mesmo segredo obtêm o mesmo resumo, pelo que um hash simples é uma forma terrível de guardar senhas.
Consigo recuperar o original a partir do hash?#
Não. Um hash criptográfico é uma função unidirecional por desenho; não há chave nem operação inversa. “Decifrar um SHA-256” é um erro de categoria. O único ataque é a força bruta (tentar entradas até uma corresponder), que é exatamente o que torna as senhas fracas perigosas mesmo quando feitas hash sem sal.
Porque é que o meu MD5 difere de uma ferramenta que costumo usar?#
Quase sempre um desalinhamento de representação de bytes: uma mudança de linha final, finais de linha diferentes (CRLF vs LF), ou a outra ferramenta a fazer hash de uma representação UTF-16 enquanto esta página faz hash de UTF-8. Compare os bytes em bruto, não o texto no tela.