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
- Passo 1 — Insira a sua mensagem e a chave secreta.
- 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.
- 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
Gerador de chaves PGP
Gere pares de chaves de criptografia PGP
Notas Seguras
Crie e armazene notas criptografadas localmente
Criptografador de arquivos
Criptografe arquivos com criptografia AES-256
Decodificador de certificados SSL
Decodifique e inspecione certificados SSL/TLS
Cifra de César
Cifra de substituição com rotação personalizada
Gerador de frases-senha
Gere frases-senha fortes e fáceis de lembrar