Esta página ainda não foi traduzida para o português, por isso aparece em inglês.

HMAC Generator — SHA-256, SHA-512 & SHA-1

Compute keyed HMAC signatures for API requests and webhooks, and check whether a received signature is valid — using your browser’s Web Crypto API.

Atualizado em
Algorithm

🔒 Runs locally with your browser’s Web Crypto API — nothing you type is sent to a server.

Seus dados nunca saem do seu computador. Todo o processamento acontece localmente no navegador.

Como usar: HMAC Generator

  1. Paste the message exactly as it is signed — the raw request body for webhooks.
  2. Enter the secret key and pick its encoding.
  3. Choose the hash algorithm; the HMAC updates instantly.
  4. Paste a received signature into Expected signature to verify it.

What is HMAC?

HMAC (Hash-based Message Authentication Code, RFC 2104) combines a secret key with a hash function to produce a signature. Anyone with the key can compute the same value; anyone without it cannot forge one. APIs use HMAC to sign requests (AWS Signature v4, many payment gateways) and webhooks use it so you can prove a callback really came from the sender.

Verifying webhooks

ServiceHeaderAlgorithm / encoding
GitHubX-Hub-Signature-256HMAC-SHA256, hex, prefixed sha256=
StripeStripe-SignatureHMAC-SHA256 hex of timestamp.body
ShopifyX-Shopify-Hmac-Sha256HMAC-SHA256, Base64
SlackX-Slack-SignatureHMAC-SHA256 hex of v0:timestamp:body

The most common reason a signature does not match is that the body was changed before signing — parsed and re-serialized JSON, different whitespace or line endings. Always sign the raw bytes you received. The verifier above accepts hex (with or without sha256=), Base64 and Base64url.

HMAC vs plain hashes

A plain SHA-256 hash proves integrity but not authenticity: anyone can recompute it after changing the message. HMAC includes the secret, so only key holders can produce a valid value. Use a key of at least as many random bytes as the hash output (32 for SHA-256). In server code, compare signatures with a constant-time function such as crypto.timingSafeEqual.

For unkeyed hashes, use the hash generator; for signed tokens, the JWT encoder.

Também pesquisado como: hmac sha256, hmac online, hmac sha256 online, webhook signature, hmac sha512, verify hmac.

Ferramentas que combinam com: HMAC Generator

  • Decodificador JWT — Cole um JSON Web Token para analisar seu cabeçalho e sua carga, verificar quando ele expira e conferir sua assinatura.
  • Codificação/Decodificação Base64 — Converte texto para Base64 e vice-versa, com suporte total a UTF-8 (acentos, emojis); alterna para Base64 seguro para URLs; ou arrasta um arquivo para obter sua string Base64 ou URI de dados.
  • AES Encrypt & Decrypt — Protect a note, secret or config value with a password using AES-256 — or decrypt text produced by openssl enc.
  • IBAN Validator — Check whether an IBAN is valid before you send money or save it: the country, the length for that country, the account format and the mod-97 checksum.

Perguntas frequentes

Why does my HMAC not match the webhook signature?
Usually the message differs: the body must be the raw bytes received, not JSON that was parsed and re-stringified. Also check the algorithm, the key encoding and any prefix like sha256=.
Is HMAC-SHA1 still secure?
HMAC-SHA1 is still considered secure for authentication, unlike plain SHA-1 for signatures, but new systems should use HMAC-SHA256.
Is my secret key sent anywhere?
No. The HMAC is computed in your browser with the Web Crypto API.
What is the difference between hex and Base64 output?
They encode the same bytes differently. Hex is 64 characters for SHA-256; Base64 is 44 characters. Use whatever the receiving system expects.
Posso instalar o HMAC Generator como um aplicativo da web e usá-lo offline?
Sim. O HMAC Generator é um aplicativo da web instalável (PWA) — instalado a partir do seu navegador, não baixado de uma loja de aplicativos. Clique em “Instalar aplicativo” na parte superior desta página no Chrome ou no Edge (Windows, macOS, Linux, ChromeOS) ou, no Android, use “Compartilhar” → “Adicionar à tela inicial” no iPhone e no iPad, ou “Arquivo” → “Adicionar ao Dock” no Safari 17+ em um Mac. Em seguida, ela se abre em uma janela própria com seu próprio ícone e, como é executada inteiramente no seu navegador, continua funcionando offline. O Firefox no desktop não permite a instalação de aplicativos da web. Como funciona a instalação.

Ferramentas relacionadas