O que é Gerador de HMAC?

Um gerador de HMAC cria códigos de autenticação de mensagem com hash com chave usando uma chave secreta e um algoritmo de hash (SHA-256, SHA-512, etc.). Os HMACs verificam tanto a integridade quanto a autenticidade dos dados, sendo amplamente utilizados em autenticação de APIs, assinaturas de webhooks e tokens JWT.

O HMAC mistura uma chave secreta dentro do hash, de modo que só quem tem essa chave consegue verificar a assinatura. A ferramenta suporta SHA-1, SHA-256, SHA-384 e SHA-512 com saída em hex, Base64, Base64URL ou binário bruto, além de predefinições de um clique para os webhooks do GitHub, Stripe, Slack e Shopify que preenchem o algoritmo e o prefixo de cabeçalho corretos. A mensagem pode ser digitada como texto simples ou colada já codificada em hex, Base64 ou Base64URL — ela é decodificada para bytes brutos antes de assinar. Uma contagem de bytes em tempo real sinaliza chaves menores que os 32 bytes seguros para produção, a assinatura é recalculada enquanto você digita, e um campo de verificação tolera os prefixos sha256= ou v0= que esses provedores enviam. Mensagem e chave são processadas no seu dispositivo.

Como usar

  1. Passo 1 — Insira a sua mensagem e a chave secreta.
  2. Passo 2 — Escolha uma predefinição de webhook (GitHub, Stripe, Slack, Shopify) ou defina você mesmo o algoritmo de hash (SHA-1, SHA-256, SHA-384 ou SHA-512) e a codificação de saída (hex, Base64, Base64URL ou binário). Para colar uma carga já codificada, troque a entrada da mensagem para Hex ou Base64.
  3. Passo 3 — Copie a assinatura HMAC gerada para uso em cabeçalhos de API ou verificação de webhooks.

Quando usar

  • Assinar payloads de webhook para que o destinatário confirme que vieram de você e não foram alterados.
  • Gerar assinaturas de requisição para o AWS Signature Version 4 ou esquemas equivalentes.
  • Produzir assinaturas JWT com os algoritmos HS256, HS384 ou HS512.

Resultado

A sua API de pagamento exige requisições assinadas com HMAC-SHA256. Insira o corpo da requisição como mensagem, o segredo da API como chave e copie a assinatura resultante no cabeçalho X-Signature.

Perguntas frequentes

Qual a diferença entre HMAC e um SHA-256 comum de mensagem+chave?
O HMAC usa uma construção específica de hash duplo com chaves internas e externas preenchidas. Isso protege contra ataques de extensão de comprimento, que afetam construções ingênuas como hash(chave‖mensagem) baseadas em SHA-1 ou SHA-256.
Hex ou Base64 na saída?
Use o que o API ou o provedor do webhook exige. Hex é comum em headers HTTP (Stripe, GitHub), Base64 em corpos JSON e JWT. A assinatura é a mesma; muda só a codificação.
Qual deve ser o tamanho da chave secreta?
Pelo menos 32 bytes (256 bits) de dados aleatórios, idealmente de uma fonte criptográfica. Curta demais enfraquece; maior que o tamanho de bloco do hash (64 bytes no SHA-256) não acrescenta porque o HMAC já comprime internamente.
Por que minha assinatura difere da que o API enviou?
Quase sempre é diferença no que está sendo assinado. Espaços, quebras de linha, ordem exata dos parâmetros, encoding de URL e a inclusão (ou não) do timestamp importam. Reproduza a receita do provedor byte a byte.
HMAC-SHA1 ainda é seguro?
Para sistemas novos prefira HMAC-SHA256 ou maior. Tecnicamente o HMAC-SHA1 ainda é seguro porque a construção não depende de resistência a colisões, mas abandonar o SHA-1 por completo é a escolha mais sensata no longo prazo.

Ferramentas relacionadas