Gerador de HMAC online
Informe a mensagem, a chave secreta e o algoritmo de hash para calcular o HMAC em tempo real. Suporta SHA-256, SHA-1, SHA-384 e SHA-512, com saída em hexadecimal (minúsculas e maiúsculas). Processamento 100% no navegador — nada é enviado ao servidor.
O que é HMAC?
HMAC (Hash-based Message Authentication Code) é um código de autenticação de mensagem que combina uma função de hash (como SHA-256) com uma chave secreta. Ele serve para dois objetivos ao mesmo tempo:
- Integridade — garante que a mensagem não foi alterada
- Autenticidade — garante que ela foi gerada por quem possui a chave secreta
Diferente de um hash simples, o HMAC não pode ser recalculado por alguém que não conheça a chave secreta.
Como o HMAC funciona
O HMAC aplica a função de hash duas vezes, combinando a chave com a mensagem:
HMAC(K, m) = H( (K ⊕ opad) || H( (K ⊕ ipad) || m ) )Onde H é a função de hash, K é a chave, m é a mensagem, e ipad/opad são padding internos definidos no padrão (RFC 2104). Essa construção em duas camadas protege contra ataques de extensão de comprimento que afetariam um hash simples concatenado com a chave.
HMAC vs hash simples
| Hash simples (ex: SHA-256) | HMAC | |
|---|---|---|
| Usa chave secreta | Não | Sim |
| Garante integridade | Sim | Sim |
| Garante autenticidade | Não | Sim |
| Pode ser recalculado por qualquer um | Sim | Não (precisa da chave) |
Usos comuns do HMAC
- JWT — o algoritmo
HS256é HMAC com SHA-256 - Webhooks — serviços como GitHub e Stripe assinam payloads com HMAC para que você verifique a origem
- APIs — assinatura de requisições (AWS Signature, por exemplo)
- Verificação de integridade de mensagens e arquivos
Qual algoritmo escolher?
- HMAC-SHA256 — padrão recomendado para a maioria dos casos
- HMAC-SHA384 / SHA512 — quando se deseja saída maior e margem extra de segurança
- HMAC-SHA1 — apenas para compatibilidade com sistemas legados; SHA-1 está depreciado para novos projetos
Perguntas frequentes
HMAC é criptografia?
Não. HMAC não esconde a mensagem (que continua visível) — ele apenas gera um código que prova a integridade e autenticidade. Para confidencialidade, é necessário usar criptografia (como AES).
Posso usar HMAC para armazenar senhas?
Não diretamente. Para senhas, use algoritmos próprios como bcrypt, Argon2 ou scrypt, que são propositalmente lentos. HMAC é projetado para autenticação de mensagens, não para hashing de senhas.
A mesma mensagem e chave sempre geram o mesmo HMAC?
Sim. HMAC é determinístico: dadas a mesma mensagem, chave e algoritmo, o resultado é sempre idêntico. É exatamente isso que permite a verificação do outro lado.
Por que minha chave secreta importa tanto?
A segurança do HMAC depende inteiramente do sigilo da chave. Qualquer pessoa que conheça a chave pode forjar HMACs válidos. Use chaves longas, aleatórias e mantidas em segredo.