Gerador HMAC 🔒 Roda localmente no seu navegador — nada é enviado.

Calcule uma assinatura HMAC com SHA-256/384/512.

    

A comparação ignora maiúsculas e o prefixo "sha256=", então você pode colar o valor do cabeçalho como está.

Sobre esta ferramenta

Um HMAC prova que uma mensagem veio de alguém que conhece um segredo compartilhado e não foi adulterada — o mecanismo por trás de webhooks assinados, assinatura de requisições de API e muitos esquemas de token. Digite sua mensagem e chave secreta, escolha SHA-256, SHA-384 ou SHA-512 e obtenha a assinatura em hexadecimal ou Base64.

O cálculo usa a Web Crypto API nativa do navegador e acontece inteiramente no seu dispositivo, então sua chave secreta nunca é transmitida. Atualiza ao vivo enquanto você digita.

Perguntas frequentes

Para que serve o HMAC?

O HMAC (código de autenticação de mensagem baseado em hash) prova tanto que uma mensagem não foi alterada quanto que veio de alguém que conhece uma chave secreta compartilhada — é assim que serviços como Stripe ou GitHub assinam payloads de webhook para você verificar a autenticidade.

HMAC é o mesmo que apenas fazer hash da mensagem?

Não. Um hash simples (SHA-256 só da mensagem) pode ser recalculado por qualquer pessoa, então não prova nada sobre a origem. O HMAC mistura uma chave secreta usando uma construção resistente a ataques de extensão de comprimento, então só quem possui a chave pode gerar uma assinatura válida.

Minha chave secreta é enviada para algum lugar?

Não. O HMAC é calculado localmente com a Web Crypto API do navegador (crypto.subtle). Sua chave e mensagem nunca saem do seu dispositivo.

Por que a verificação da assinatura diz "não corresponde" mesmo tendo copiado corretamente?

Cabeçalhos de webhook costumam ter um prefixo como sha256=<hex>, usar outra capitalização ou ter espaços em branco ao redor. O verificador normaliza a capitalização e remove automaticamente um prefixo algorithm=, mas confira se você escolheu o mesmo algoritmo de hash e a mesma codificação de chave (UTF-8/Hex/Base64) que o remetente usou.

Qual codificação de chave devo escolher?

A maioria das APIs fornece uma string secreta em UTF-8 simples (por exemplo, whsec_...) — use UTF-8. Escolha Hex ou Base64 apenas se a documentação do provedor disser explicitamente que a chave está codificada dessa forma.