Report

Help us improve this tool

Webhook Signature Verifier

Verify GitHub, Stripe, and Slack-style HMAC webhook signatures using your browser and Web Crypto.

O M T

Verify HMAC webhook signatures locally

Webhook providers prove authenticity with HMAC signatures over the raw request body (and sometimes a timestamp). GitHub sends X-Hub-Signature-256, Stripe uses Stripe-Signature with t= and v1= fields, and Slack signs v0:timestamp:body with your signing secret. Paste the payload and header values to confirm they match before you trust an event in production.

What gets hashed

  • GitHub, HMAC-SHA256 of the raw body, prefixed with sha256= in the header.
  • Stripe, HMAC-SHA256 of {timestamp}.{body}; compare against the v1 signature.
  • Slack, HMAC-SHA256 of v0:{timestamp}:{body}; compare against v0= in X-Slack-Signature.

Decode JWT access tokens with the JWT Decoder after you validate the webhook envelope.

Frequently Asked Questions

Are secrets uploaded?

No. Web Crypto computes HMAC entirely in your browser. Clear the page on shared machines.

Why does my GitHub signature fail?

Ensure you hash the raw bytes GitHub posted, not pretty-printed JSON. Copy the exact body from your proxy or logs.

Can I verify other algorithms?

Use the generic mode for plain HMAC-SHA256 hex comparisons when your provider documents that format.