Gerador e Verificador HMAC
O comprimento da chave recomendado corresponde ao comprimento da saída do Hash: SHA-1=20 bytes, SHA-256=32 bytes, SHA-384=48 bytes, SHA-512=64 bytes
Notas
- • HMAC Gera assinaturas baseadas em algoritmos de chave e Hashi para autenticação de fonte e integridade
- • Suporte SHA-1 / SHA-256 / SHA-384 / SHA-512
- • Gerar e validar tanto localmente em navegadores, sem enviar dados
- • Validação usa comprimento fixo por bytes para reduzir diferenças de séries temporais
Gere e verifique assinaturas HMAC online grátis, suporta algoritmos comuns da série SHA. Ideal para assinatura de API, verificação de Webhook e debug de segurança.
Sugestões Relacionadas
O que é Gerador e Verificador HMAC?
HMAC (Hash-based Message Authentication Code) é uma tecnologia de autenticação de mensagem amplamente utilizada definida na RFC 2104. O HMAC processa uma chave junto com uma mensagem através de uma função hash para produzir uma assinatura de comprimento fixo. Ao contrário de hashes normais, o HMAC requer conhecer a chave para gerar ou verificar uma assinatura, garantindo tanto a integridade da mensagem quanto a autenticidade.
**HMAC é a base da segurança moderna de API**. Stripe, GitHub, Shopify, Slack e Twilio usam HMAC-SHA256 para assinar eventos de webhook, garantindo que as solicitações realmente venham da plataforma. AWS usa HMAC-SHA256 para assinatura de solicitações Signature V4. O algoritmo HS256 do JWT é essencialmente HMAC-SHA256. Entender HMAC é o primeiro passo para dominar a segurança de API.
**Diferentes plataformas têm diferentes formatos de assinatura**: o formato da Stripe é `t=timestamp,v1=hex_signature`, assinando `timestamp.payload`; GitHub usa `X-Hub-Signature-256` com formato `sha256=hex_signature`; Shopify usa `X-Shopify-Hmac-Sha256` com valor codificado em Base64. Esta ferramenta suporta análise automática e verificação desses formatos comuns.
**Por que a verificação de assinatura falha?** O motivo mais comum é incompatibilidade de formato de mensagem: a plataforma pode estar assinando `timestamp.payload` em vez do corpo da mensagem bruta; ou a mensagem contém quebras de linha extras; ou a assinatura inclui um prefixo (como `sha256=`) que precisa ser removido. Verifique cuidadosamente a documentação da plataforma e compare usando o valor hexadecimal bruto.
Esta ferramenta usa a **Web Crypto API** nativa do navegador (SubtleCrypto) para cálculos HMAC — a mesma biblioteca criptográfica que alimenta HTTPS e TLS. Todos os cálculos acontecem localmente; chaves e mensagens nunca são enviadas para nenhum servidor. Abra o painel Network das Ferramentas de Desenvolvedor do navegador para verificar que nenhuma solicitação externa é feita.
Casos de uso
- Desenvolvimento de webhook Stripe: Depure retornos de pagamento Stripe, verifique a correção do cabeçalho `Stripe-Signature`
- Integração de webhook GitHub: Verifique assinatura `X-Hub-Signature-256` para eventos Push e Pull Request do GitHub
- Sincronização de pedidos Shopify: Verifique assinatura `X-Shopify-Hmac-Sha256` para webhooks de atualização de pedidos Shopify
- Assinaturas de bot Slack: Verifique `X-Slack-Signature` para retornos de eventos Slack
- Debug de desenvolvimento JWT: Assine JWTs com HS256, verifique validade do token
- Assinatura de solicitação API: Implemente AWS Signature V4 ou esquemas de assinatura API personalizados
Como Usar
- Selecione algoritmo: HMAC-SHA256 padrão, recomendado para APIs modernas
- Insira mensagem: Cole corpo da mensagem bruta ou conteúdo de solicitação API
- Insira chave: Insira Webhook Secret ou API Secret
- Escolha formato: Selecione formato de saída (hex para Stripe, Base64URL para JWT)
- Verifique assinatura: Mude para modo de verificação, cole assinatura esperada para comparar
Recursos
- Suporte a múltiplos algoritmos: HMAC-SHA256/384/512, SHA1, MD5 — cobre APIs modernas e sistemas legados
- Verificação de assinatura Webhook: Suporte integrado para formatos de assinatura Stripe/GitHub/Shopify/Slack com análise automática
- Três formatos de saída: Hex / Base64 / Base64URL — atende a qualquer requisito de API ou plataforma
- Geração em tempo real: Cálculo automático na alteração de entrada com debounce de 300ms, sem necessidade de clicar em botão
- Modo de verificação de assinatura: Cole a assinatura esperada para comparar, exibição de resultado de correspondência em tempo real
- Detecção de comprimento de chave: Monitoramento em tempo real da força da chave com avisos para chaves curtas
- Processamento no navegador: Web Crypto API para computação local, chaves nunca carregadas no servidor
- Suporte JWT: Saída HMAC-SHA256 diretamente utilizável para assinatura HS256
Perguntas frequentes
Qual é a diferença entre HMAC e hash normal?
Funções hash normais (como SHA256) apenas calculam um resumo da mensagem em si — qualquer pessoa pode calculá-las. O HMAC introduz uma chave secreta no processo de hash, então apenas partes com a chave podem gerar ou verificar uma assinatura válida. O HMAC garante tanto a integridade da mensagem quanto a autenticidade, enquanto hashes normais verificam apenas a integridade.
Como verificar assinaturas de webhook Stripe/GitHub/Shopify?
Diferentes plataformas formatam suas assinaturas de maneira diferente: Stripe usa o cabeçalho `Stripe-Signature` com formato `t=timestamp,v1=hex_signature`, assinando a string `timestamp.payload`; GitHub usa `X-Hub-Signature-256` com formato `sha256=hex_signature`; Shopify usa `X-Shopify-Hmac-Sha256` com valor codificado em Base64. Esta ferramenta suporta verificação direta desses formatos comuns.
Qual é a diferença entre saída Hex, Base64 e Base64URL?
Hex é formato hexadecimal (0-9, A-F), legível por humanos, ótimo para debug. Base64 é uma codificação de 64 caracteres, mais compacta, ideal para incorporar em JSON. Base64URL é a versão segura para URL (substitui +/ por -_), usada em cabeçalhos JWT e parâmetros URL.
Qual algoritmo HMAC devo usar?
**HMAC-SHA256 é recomendado**: é o padrão moderno para APIs e webhooks (usado por Stripe, GitHub, Shopify, Slack), com saída de 32 bytes e suporte universal. SHA-512 oferece maior segurança, mas saída mais longa (64 bytes). SHA1 é apenas para sistemas legados. MD5 está obsoleto e deve ser usado apenas para APIs muito antigas.
Quais são os requisitos para comprimento de chave?
Chaves mais longas são mais seguras. Mínimo de 16 caracteres (128 bits) recomendado, 32+ caracteres para produção. A ferramenta monitora o comprimento da chave e avisa se for muito curta. Use geradores de números aleatórios criptograficamente seguros para chaves, não senhas simples ou strings previsíveis.
Por que a verificação de assinatura mostra incompatibilidade?
Causas comuns: 1) Mensagem contém espaços em branco ou quebras de linha extras; 2) Plataforma assina uma string composta (ex: Stripe assina `timestamp.payload`); 3) Assinatura inclui um prefixo que você precisa remover (como `sha256=` do GitHub); 4) Algoritmo diferente usado. Verifique se ambos os lados usam parâmetros idênticos.
HMAC pode ser usado para assinatura JWT?
Sim. O algoritmo HS256 do JWT é HMAC-SHA256, e HS512 é HMAC-SHA512. A saída HMAC-SHA256 desta ferramenta pode ser usada diretamente como conteúdo de assinatura para HS256. Cabeçalho e Payload JWT são codificados em Base64URL, depois assinados com HS256.
Esta ferramenta HMAC online é segura?
Esta ferramenta usa Web Crypto API para todos os cálculos localmente no seu navegador. Chaves e mensagens nunca são enviadas para nenhum servidor. Você pode verificar isso abrindo o painel Network das Ferramentas de Desenvolvedor do navegador — nenhuma solicitação externa é feita. Adequado para testes e desenvolvimento; para chaves de produção altamente sensíveis, use ferramentas offline locais.
Assinaturas HMAC podem ser falsificadas?
Não. A segurança HMAC depende do sigilo da chave e da resistência a colisões do algoritmo hash. Com chaves suficientemente longas e aleatórias, não há ataques conhecidos que possam falsificar assinaturas HMAC válidas. A rotação regular de chaves é uma boa prática de segurança.
- Comparação Segura de Strings
- Conversão Binária
- Cifra de César
- Código Morse
- Codificação/Decodificação Hexadecimal
- Vídeo para Base64
- Base64 para Vídeo
- Imagem para Base64
- Base64 para Imagem
- Texto para Base64
- Base64 para Texto
- Verificador de hash de arquivo
- Arquivo para Base64
- Base64 para Arquivo
- Áudio para Base64
- Base64 para Áudio
- Criptografar e descriptografar AES
- Criptografia DES
- Codificador e Decodificador Base32
- Codificar e decodificar Base58
- Codificação Base64
- Decodificação Base64
- Comparação Base64
- Dividir Base64
- Mesclar Base64 em várias linhas
- Formatação Base64
- Verificação de Formato Base64
- Codificação Base64 em lote
- Decodificação Base64 em Lote
- Limpeza de Base64
- Preenchimento Base64
- Estatísticas Base64
- Base64 para Hexadecimal
- Conversor Base64 DataURL
- Conversor Base64-Hex
- Codificador Base85
- Gerador e Verificador HMAC
- Derivação de Chave PBKDF2
- Hash MD5
- Hash SHA-256
- Hash SHA1
- Hash SHA512
- Ferramenta JWT
- Codificação e Decodificação HTML
- Escape Unicode
- Codificação URL
- Base64 URL Safe
- MIME Base64
- Ofuscador Java
- Ofuscador JS
- Ofuscador PHP
- Ofuscação Python