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

  1. Informe a chave

    Digite ou cole o segredo compartilhado em Chave Secreta.

  2. Informe a mensagem

    Cole em Mensagem exatamente os bytes assinados, ou deixe vazio para calcular o HMAC de uma string vazia.

  3. Escolha o algoritmo

    Selecione SHA-256 ou SHA-512 em Algoritmo; o Resultado HMAC é atualizado na hora (ou clique em Calcular HMAC).

  4. 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.