Referência técnica e guia de arquitetura

Gerador e Verificador de Assinaturas HMAC — Guia de referência

Calcule e valide códigos de autenticação de mensagens RFC 2104 (HMAC-SHA256, HMAC-SHA512, HMAC-SHA1, HMAC-MD5) com verificação em tempo constante (Timing-Safe) no navegador.

Parâmetros principais e controles

Algoritmo CriptográficoEnum

Função hash subjacente para autenticação.

Padrão: SHA-256
Codificação da ChaveEnum

Formato da chave secreta compartilhada.

Padrão: UTF-8
Codificação da MensagemEnum

Formato da carga útil a ser autenticada.

Padrão: UTF-8
Formato de SaídaEnum

Formato de representação da assinatura calculada.

Padrão: hex-lower

Dicas profissionais e melhores práticas

Sempre utilize comparação em tempo constante para webhooks

Operadores de igualdade padrão expõem seu sistema a timing attacks. O verificador utiliza comparação O(1) segura.

Diferenças entre GitHub e Stripe

O GitHub assina diretamente o payload em Hex, enquanto a Stripe concatena timestamp e payload antes de assinar com HMAC-SHA256.

Tamanho recomendado da chave secreta

A norma RFC 2104 recomenda chaves com tamanho equivalente ou superior ao bloco do hash (32 bytes para SHA-256).

Problemas comuns e solução de problemas

A assinatura não corresponde ao cabeçalho recebido

Verifique se o payload está idêntico ao corpo bruto da requisição HTTP, sem alterações em quebras de linha ou espaços.

Incompatibilidade entre Base64 e Base64URL

Se a API exigir caracteres seguros para URLs, mude o formato de saída para Base64URL.

Perguntas frequentes (FAQ)

Por que o HMAC é mais seguro que um hash simples concatenado?▼

Posso testar assinaturas de APIs da AWS?▼

Ferramentas e utilitários relacionados

Todas as ferramentas →