Gerador e verificador HMAC
Gere e verifique códigos de autenticação de mensagens HMAC com SHA-256, SHA-384, SHA-512 ou SHA-1 usando uma chave secreta, inteiramente em seu navegador.
Resultado
Um HMAC (código de autenticação de mensagem baseado em hash) é uma construção criptográfica com chave que combina uma chave secreta com uma mensagem por meio de uma função hash como SHA-256. Ao contrário de um hash simples, que qualquer pessoa pode recalcular apenas a partir da mensagem, um HMAC só pode ser reproduzido por alguém que possua a mesma chave secreta – é isso que o torna um código de autenticação e não apenas uma soma de verificação.
Esta é a diferença fundamental de um resumo simples: nossa própria ferramenta Hash Generator calcula hashes não codificados como MD5 ou SHA-256, que são ótimos para detectar corrupção acidental, mas não provam nada sobre quem produziu os dados, já que qualquer um pode gerar o mesmo hash. Um HMAC prova tanto a integridade (a mensagem não foi alterada) quanto a autenticidade (o signatário conhecia o segredo compartilhado), e é por isso que o HMAC é o bloco de construção padrão por trás da assinatura de solicitação de API, dos algoritmos HS256/HS384/HS512 do JWT e da autenticação de registro TLS.
O caso de uso mais comum no mundo real é a verificação de assinaturas de webhook. Serviços como Stripe, GitHub e Shopify assinam cada carga útil do webhook com HMAC-SHA256 usando um segredo que você configura e enviam a assinatura resultante em um cabeçalho de solicitação. Espera-se que seu servidor recalcule o HMAC sobre a carga bruta com o mesmo segredo e compare-o com o valor do cabeçalho - se eles corresponderem, você sabe que a solicitação veio genuinamente desse serviço e não foi adulterada em trânsito. O modo de verificação desta ferramenta reproduz exatamente essa verificação: cole a carga útil, o segredo compartilhado e a assinatura recebida e obtenha uma correspondência ou incompatibilidade instantânea.
Tudo é executado localmente por meio da Web Crypto API nativa do navegador (crypto.subtle.importKey e crypto.subtle.sign), para que a chave secreta, o corpo da mensagem e a assinatura resultante nunca saiam de sua máquina – nada é carregado em nenhum servidor, o que é importante, já que os segredos HMAC são exatamente o tipo de valor que você nunca deve colar em uma ferramenta on-line aleatória que possa registrá-los.