Calculadora HMAC
Calcule HMAC-SHA256 ou HMAC-SHA512 de uma mensagem com chave secreta, ao vivo enquanto digita. Saída em hex, entrada UTF-8, aceita mensagem vazia.
Os dados inseridos e arquivos ficam no navegador
Chave e mensagem
Cole a mensagem a ser assinada (por exemplo, o corpo de um webhook) ou carregue um exemplo.
Insira uma chave secreta — o HMAC é calculado enquanto você digita.
Nesta página
A Calculadora HMAC gera um código de autenticação de mensagem com chave (RFC 2104) usando SHA-256 ou SHA-512 enquanto você digita. Use-a para conferir assinaturas de webhooks ou reproduzir a assinatura de requisições de API; chave e mensagem ficam no navegador.
Funcionalidade detalhada
Informe a Chave Secreta e a Mensagem; ambas são lidas como texto UTF-8 exatamente como digitadas. O resultado é recalculado a cada tecla e a cada troca de algoritmo, e aparece em hexadecimal minúsculo: 64 caracteres para HMAC-SHA256 e 128 para HMAC-SHA512. O cálculo é feito por um módulo Rust/WebAssembly na página.
Mensagem vazia é uma entrada válida: com a chave key, o HMAC-SHA256 de uma mensagem vazia é 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, como no OpenSSL e em outras bibliotecas. Sem chave a saída fica vazia. Chaves maiores que o bloco do hash (64 bytes no SHA-256, 128 no SHA-512) são primeiro hasheadas, como manda o padrão.
O campo de chave aceita só texto, então um segredo que um serviço entrega em hex ou Base64 deve ser digitado na forma que o próprio serviço usa como chave. Os resultados foram conferidos com os vetores de teste da RFC 4231. Nada é salvo: ao recarregar, os campos ficam vazios.
Exemplos práticos
Vetor de teste clássico: chave key, mensagem The quick brown fox jumps over the lazy dog, SHA-256 → f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8.
RFC 4231, caso 2: chave Jefe, mensagem what do ya want for nothing?, SHA-256 → 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.
Mensagem vazia: a chave key com mensagem vazia dá 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, igual a printf '' | openssl dgst -sha256 -hmac key.
Conferir um webhook: cole o corpo original da requisição como mensagem e o segredo do webhook como chave; se o provedor envia sha256=<hex>, compare só a parte hex com o resultado.
Como usar esta ferramenta
Informe a chave
Digite ou cole o segredo compartilhado em Chave Secreta.
Informe a mensagem
Cole em Mensagem exatamente os bytes assinados, ou deixe vazio para calcular o HMAC de uma string vazia.
Escolha o algoritmo
Selecione SHA-256 ou SHA-512 em Algoritmo; o Resultado HMAC é atualizado na hora (ou clique em Calcular HMAC).
Copie ou limpe
Copiar pega o valor hex; Limpar esvazia os dois campos.
Dicas e melhores práticas
- Assine exatamente os bytes que o servidor assinou: JSON reformatado, outra ordem de chaves ou uma quebra de linha extra mudam o HMAC.
- No seu código compare HMACs em tempo constante; a conferência visual aqui é só para depuração.
- Um segredo colado com espaço ou quebra de linha no final é outra chave; confira o campo se os valores não baterem.
- HMAC-SHA512 não é "duas vezes mais seguro" no uso comum; use o algoritmo que o outro lado espera.
- Se o valor esperado está em Base64, ele codifica os mesmos bytes da saída hex: converta um no outro antes de comparar.