Gerador de hash
Gere valores hash MD5, SHA-1, SHA-256 e SHA-512 de qualquer texto no navegador. Nada é enviado a um servidor — todo o processamento usa a Web Crypto API.
O que é um hash?
Uma função de hash criptográfico converte qualquer entrada em uma string de comprimento fixo. A mesma entrada sempre produz o mesmo hash, mas uma pequena alteração produz um hash completamente diferente — é o chamado efeito avalanche. Hashes são de mão única: não é possível reverter um hash para obter a entrada original.
Usos comuns incluem armazenamento de senhas (guarde o hash, não a senha), verificação de integridade de arquivos (comparar checksums após download), assinaturas digitais e deduplicação de dados. SHA-256 é o mais usado atualmente; MD5 e SHA-1 são considerados inseguros para fins criptográficos, mas ainda úteis para checksums.
Quando usar cada algoritmo
MD5 (128 bits): Rápido, amplamente suportado. Colisões já foram demonstradas, então é inseguro para fins criptográficos. Ainda serve bem para checksums não-críticos, tabelas hash e chaves de cache.
SHA-1 (160 bits): Descontinuado para fins de segurança após demonstrações de ataques de colisão em 2017. Ainda aparece em sistemas legados e hashes de commits do Git (o Git está migrando para SHA-256).
SHA-256 (256 bits): O padrão atual. Usado em TLS/SSL, Bitcoin, assinaturas de certificados e na maioria dos protocolos criptográficos modernos. Recomendado para praticamente qualquer caso novo.
SHA-512 (512 bits): Saída mais longa com margem de segurança ligeiramente maior. Usado quando um hash mais longo é necessário ou por conservadorismo extra.
Hashing vs criptografia
Hashing é de mão única — não é possível recuperar os dados originais a partir do hash, apenas verificar se uma entrada candidata corresponde. Criptografia é bidirecional — você pode descriptografar com a chave certa. Hashing é para verificação (checagem de senha, integridade de arquivos). Criptografia é para confidencialidade (proteger dados em trânsito ou em repouso).
Precisa gerar identificadores únicos? Experimente nosso gerador de UUID.
MD5 vs SHA-1 vs SHA-256 vs SHA-512: Comparação
Escolha o algoritmo de hash certo para seu caso de uso — requisitos de segurança, tamanho de saída e desempenho diferem significativamente.
| Característica | MD5 | SHA-1 | SHA-256 Recomendado | SHA-512 |
|---|---|---|---|---|
| Comprimento de saída (bits) | 128 | 160 | 256 | 512 |
| Saída (caracteres hex) | 32 | 40 | 64 | 128 |
| Velocidade (relativa) | Mais rápido | Rápido | Moderado | Mais lento |
| Status de segurança | Comprometido — colisões conhecidas | Obsoleto | Seguro | Seguro |
| Caso de uso comum | Apenas checksums | Sistemas legados | TLS, assinatura de código | Aplicativos de alta segurança |
| Recomendado pelo NIST | Não | Não | Sim | Sim |
MD5 e SHA-1 são criptograficamente comprometidos para fins de segurança. Use SHA-256 ou SHA-512 para qualquer nova implementação.
Usos comuns
- Verificação de integridade de arquivos: Gere um hash SHA-256 de um arquivo antes e depois da transferência para confirmar que não houve corrupção ou adulteração.
- Prototipagem de armazenamento de senhas: Prototipe como as senhas devem ser hasheadas (SHA-256, SHA-512) antes de implementar o armazenamento do lado do servidor em um aplicativo web.
- Geração de assinatura de API: Muitas APIs requerem assinaturas HMAC-SHA256 para autenticação de solicitações — use a ferramenta de hash para testar a construção de assinaturas.
- Aprendizado de blockchain: Entenda como funciona a prova de trabalho do Bitcoin hasheando cabeçalhos de bloco e observando como a mudança de um único byte altera a saída.
- Chaves de deduplicação: Gere hashes de conteúdo para detectar arquivos duplicados ou registros de banco de dados sem armazenar ou comparar o conteúdo completo.
- Anonimização de dados: Hasheie informações de identificação pessoal (e-mail, telefone) para casos de uso analítico onde o valor original não deve ser armazenado.
- Compreensão de commits Git: O Git usa SHA-1/SHA-256 para identificar commits — hasheie uma string para entender como o Git atribui identificadores únicos a objetos.
FAQ
MD5 ainda é seguro?
Não para segurança — não o use para senhas, assinaturas digitais ou qualquer coisa onde um atacante se beneficiaria ao encontrar uma colisão. Ainda serve para usos não-criptográficos como checksums, chaves de cache ou deduplicação, onde velocidade importa mais que resistência a colisões.
Posso reverter um hash para obter o texto original?
Não. Hashes são de mão única por design — o processo de hashing não é uma função invertível. Ataques de dicionário e rainbow tables podem encontrar entradas comuns (razão para se aplicar salt nas senhas com hash), mas o hash em si não pode ser revertido.
Por que algoritmos diferentes produzem hashes de tamanhos diferentes?
Cada algoritmo tem um tamanho de saída fixo. MD5 produz 32 caracteres hexadecimais (128 bits), SHA-1 produz 40 (160 bits), SHA-256 produz 64 (256 bits) e SHA-512 produz 128 (512 bits). Hashes maiores têm um espaço de saída maior e mais resistência a colisões.
O gerador de hash envia meu texto para um servidor?
Não. Todo o processamento de hash é realizado no lado do cliente usando a Web Crypto API integrada ao seu navegador. Seu texto nunca sai do seu dispositivo.
Posso reverter um hash para recuperar o texto original?
Não. Funções de hash criptográfico são unidirecionais — é computacionalmente inviável reconstruir o texto original a partir de um hash. Isso é intencional e é o que torna os hashes úteis para segurança.
Em números
- SHA-256 produz uma saída de 256 bits (32 bytes) — 2^256 valores possíveis, mais do que átomos no universo observável
- MD5 foi criptograficamente quebrado em 2004 via ataques de colisão (Wang & Yu); o NIST o descontinuou para todos os usos de segurança
- O NIST padronizou o SHA-3 (Keccak) em 2015 como backup estrutural para SHA-2 usando uma construção de esponja diferente
- O blockchain do Bitcoin depende do SHA-256 — encontrar um hash de bloco válido requer ~10^21 operações de hash por segundo em toda a rede