Gerador de hash (MD5, SHA-1/256/384/512)
Calcula hashes MD5, SHA-1, SHA-256, SHA-384 e SHA-512 de texto ou arquivos. Saída em hex ou Base64. Só no navegador.
Gerador de hash
———MD5 e SHA-1 estão criptograficamente quebrados — servem para checksums sem relação com segurança, nunca para senhas ou assinaturas. Use SHA-256 ou superior para qualquer coisa ligada à segurança.
Roda totalmente no seu navegador. Seus dados nunca saem do seu dispositivo.
What next?
How it works
O que hashing realmente faz
Uma função de hash pega qualquer entrada e produz uma saída de tamanho fixo. A saída parece aleatória mas é totalmente determinística — mesma entrada sempre produz o mesmo hash. Bons hashes têm três propriedades: resistência pré-imagem (dado um hash, você não consegue reverter para a entrada), resistência de colisão (você não consegue encontrar duas entradas que produzem o mesmo hash), e avalanche (um bit mudado na entrada inverte ~metade dos bits na saída).
O que hashing não é: criptografia. Não há chave. Não há "descriptografar" um hash. Se alguém lhe disser que está "criptografando senhas com SHA-256", está misusando ambos os termos e provavelmente também seu sistema de autenticação.
Os cinco algoritmos nesta ferramenta
| Algoritmo | Tamanho de saída | Seguro para segurança em 2026? | Use para |
|---|---|---|---|
| MD5 | 128 bits | Não | Checksums não-segurança (dedup de arquivo, chaves de cache) |
| SHA-1 | 160 bits | Não | Compatibilidade legada apenas |
| SHA-256 | 256 bits | Sim | Padrão para novo código |
| SHA-384 | 384 bits | Sim | Regimes de conformidade que o exigem |
| SHA-512 | 512 bits | Sim | Quando você precisa de mais tamanho de saída (raro) |
MD5 e SHA-1 são quebrados para usos criptográficos porque ataques de colisão contra eles são práticos. Não são quebrados para usos não-segurança como detectar corrupção acidental de arquivo ou gerar chaves de cache, onde um atacante não está tentando ativamente construir colisões.
O erro: fazer hash de senhas com SHA-256
Todo desenvolvedor de backend fez isso uma vez e aprendeu a não fazer:
// NÃO
const hashed = sha256(password);
SHA-256 é rápido — uma GPU moderna consegue calcular bilhões por segundo. Isso é exatamente o que você não quer para armazenamento de senha, porque um atacante que roubar seu banco de dados consegue fazer força bruta nos hashes na mesma velocidade.
Use funções de hash de senha projetadas para ser lentas:
- bcrypt — padrão antigo, bem-entendido, bom para a maioria dos casos
- scrypt — memory-hard, mais difícil de atacar com GPU que bcrypt
- Argon2id — estado da arte atual, vencedor da Competição de Hash de Senha
Estas levam ~100ms para calcular, o que é invisível para um usuário fazendo login mas catastrófico para um atacante tentando bilhões de palpites. Use uma biblioteca: argon2 (Node), bcrypt (Python/Go/etc.), ou o built-in do seu framework. Nunca chame SHA-256 em uma senha.
HMAC — hashing com chave
HMAC ("Hash-based Message Authentication Code") combina um hash com uma chave secreta. O verificador precisa da mesma chave para confirmar a assinatura. Usos comuns:
- Assinaturas de webhook (Stripe, GitHub, etc. usam HMAC-SHA-256)
- Assinatura de solicitação de API (derivadas AWS SigV4)
- JWT HS256 (isso é apenas HMAC-SHA-256 sobre o header+payload)
Para HMAC, o algoritmo importa menos que o comprimento e segredo da chave. HMAC-SHA-256 com uma chave aleatória de 32 bytes está íntegro; HMAC-MD5 com uma chave de 16 bytes ainda está íntegro (o ataque de colisão MD5 não se traduz em HMAC). Ainda assim, use SHA-256 ou superior para novo código.
Hashing de arquivo
Esta ferramenta lê arquivos na memória e os faz hash — bom para arquivos até algumas centenas de MB em uma máquina típica. Para arquivos multi-GB, use uma CLI de streaming como shasum -a 256 file.bin (macOS/Linux) ou Get-FileHash (PowerShell). Streaming evita carregar o arquivo inteiro de uma vez.
Os hashes produzidos aqui correspondem ao que sua ferramenta CLI dará. Útil para verificar downloads — encontre o hash publicado do publisher, então calcule o mesmo algoritmo aqui e compare.
Saída hexadecimal vs Base64
Mesmo hash, visualização diferente. Hexadecimal é universal mas verboso (SHA-256 = 64 caracteres). Base64 é mais curto (SHA-256 = 44 caracteres) e aparece em coisas como atributos de Subresource Integrity. Mude o toggle acima.
Privacidade
Toda computação acontece no seu navegador. Família SHA via a API WebCrypto nativa (crypto.subtle.digest), MD5 via a biblioteca open-source js-md5. Nunca é feita uma solicitação para nosso servidor.
Ferramentas relacionadas
- Gerador de senhas — gere uma string aleatória forte (que você então faz hash com bcrypt/argon2, nunca SHA bruto).
- Gerador de UUID — quando você precisa de um ID único, não um hash.
FAQ
Devo fazer hash de senhas com SHA-256?
Não. SHA-256 é muito rápido — um atacante com um banco de dados roubado consegue fazer força bruta em bilhões de palpites de senha por segundo. Use uma função de hash de senha lenta (Argon2id, bcrypt, scrypt) através de uma biblioteca. SHA-256 é para integridade de dados, não armazenamento de senha.
MD5 é seguro?
Para integridade de dados contra corrupção acidental: sim. Para qualquer coisa onde um atacante possa construir colisões (assinaturas, certificados, usos criptográficos): quebrado desde 2004. Não use para novo código de segurança.
Qual é a diferença entre SHA-256 e SHA-3?
Ambos são modernos e seguros. SHA-256 é parte da família SHA-2, amplamente implantada desde 2001. SHA-3 (Keccak) foi padronizado depois como um backup com uma construção fundamentalmente diferente. SHA-256 é o padrão prático; SHA-3 é bom quando especificamente necessário.
Por que mesma entrada = mesmo hash?
Essa é a definição de uma função de hash — determinística. Se você quer saídas diferentes para a mesma entrada, você quer HMAC (adicione uma chave secreta) ou apenas acrescente um salt aleatório antes de fazer hash.
E sobre colisões de hash?
Para SHA-256, a probabilidade de encontrar quaisquer duas entradas que colidam é tão baixa (1 em 2^128 para um ataque de aniversário) que nunca foi observada. Para MD5, colisões podem ser construídas em minutos em um laptop. Colisões SHA-1 custam cerca de $110k de tempo de GPU a partir de 2017.
HMAC vs hash puro?
Hash puro: qualquer um consegue calculá-lo da mesma entrada. HMAC: requer uma chave secreta compartilhada, então também autentica que a mensagem veio de alguém com a chave. Use HMAC para assinaturas de webhook, assinatura de solicitação de API e JWT HS256.
Hashing de arquivo funciona em arquivos grandes?
Até alguns centenas de MB confortavelmente. Além disso, o navegador carrega o arquivo inteiro na memória o que fica lento. Para arquivos multi-GB, prefira uma CLI de streaming: shasum -a 256 (Unix) ou Get-FileHash (PowerShell).
Para que é a aba HMAC?
Um hash puro prova que uma mensagem não mudou. Não prova quem a produziu — qualquer um consegue fazer hash de qualquer coisa. HMAC adiciona uma chave secreta compartilhada, então um resumo correspondente também prova que o remetente possuía essa chave. É por isso que provedores de webhook a assinam: Stripe, GitHub e Shopify todos enviam um cabeçalho HMAC-SHA-256 que você recalcula sobre o corpo bruto da solicitação para confirmar que a solicitação realmente veio deles.
Cole a mensagem e a chave, e o resumo aparece para cada algoritmo que você selecionou. Ambos ficam no seu navegador — a computação usa WebCrypto localmente, e nada é transmitido.
Por que MD5 está faltando da aba HMAC?
WebCrypto não oferece HMAC-MD5, e seria a escolha errada mesmo se oferecesse. HMAC-MD5 não é quebrado da forma que MD5 puro é, mas não há razão para começar uma nova integração com ele. SHA-256 é o padrão moderno e o que cada provedor importante usa.
Por que meu HMAC não corresponde ao que o servidor calculou?
Quase sempre uma de três coisas. Primeiro, os bytes exatos: HMAC é calculado sobre o corpo bruto da solicitação, então um payload JSON que foi analisado e re-serializado — mesmo com campos idênticos — produz um resumo diferente. Segundo, a codificação: alguns provedores comparam hex, outros base64, e o mesmo resumo fica totalmente diferente em cada um. Terceiro, espaço em branco ou uma quebra de linha que seu editor adicionou à chave.
Verifique o corpo bruto primeiro; é a causa muito mais frequentemente que as outras duas combinadas.
More generators tools
- Gerador de Meta Tags — Generate title, description, Open Graph and Twitter card tags, with warnings for the mistakes that break social previews.
- Gerador de Código de Barras — Crie um código EAN-13, EAN-8, UPC-A, ITF-14, Code 128, Code 39, Data Matrix, PDF417 ou Aztec.
- Gerador de UUID — Gera UUID v4, v7 e v1 no navegador.
- Gerador de senhas — Gera senhas fortes com aleatoriedade criptográfica.
- Gerador de dados de teste — Gera dados fictícios realistas (usuários, e-mails, endereços, datas) em JSON, CSV ou SQL.
- Gerador de QR Code — Gere QR codes para texto, URLs, vCard, Wi-Fi ou email — download PNG e SVG, níveis de correção de erros, personalização de cores.