JSON to Rust Struct
Generate serde-ready Rust structs from a sample JSON document.
Generate HMAC signatures with SHA-1, SHA-256, SHA-384 or SHA-512.
A webhook signature covers the exact request body. Re-serialising JSON before hashing changes the bytes and breaks the signature — sign the raw body.
The HMAC Generator signs a message with a shared secret using SHA-1, SHA-256, SHA-384 or SHA-512, outputs hex or Base64, and compares against a signature you received — which is how you debug a webhook.
An HMAC proves two things at once: that a message has not been altered, and that it came from someone holding the shared secret. That is why every webhook worth trusting is signed with one — Stripe, GitHub, Shopify and Slack all use HMAC-SHA256.
Paste the payload and the secret and you get the signature in hex or Base64, which is the two forms providers actually send. Verifying an incoming webhook is the usual reason to be here: paste the raw body and your signing secret, compare with the header you received, and the tool tells you whether they match. The secret is used inside your browser and never transmitted, but a secret pasted into any web tool is worth rotating afterwards.
Paste the signature header you received and the tool says whether it matches, which is the actual question when a webhook is being rejected.
Hex and Base64 side by side, because providers disagree about which they send.
Enter the key as text, hex or Base64 — several providers hand out a Base64 secret that must be decoded before use.
The message is hashed exactly as pasted, which matters because re-serialising a JSON body is the single most common cause of a signature mismatch.
HMAC comes from SubtleCrypto rather than a JavaScript reimplementation, and the secret never leaves the tab.
The exact bytes that were signed — for a webhook, the raw request body before any parsing.
The shared signing key, as text or as hex or Base64 bytes.
SHA-256 unless the provider documents otherwise.
Paste the signature you received and the tool confirms whether it matches.
Almost always because the body was re-serialised before hashing. An HMAC covers exact bytes, so parsing JSON and re-encoding it changes key order or whitespace and breaks the signature. Sign the raw body.
A hash proves the content is unchanged. An HMAC also proves who produced it, because generating it requires the secret. Anyone can compute a SHA-256; only a key holder can compute the matching HMAC.
Whatever the provider sends. GitHub uses hex with a "sha256=" prefix, Stripe uses hex, and several others use Base64. Both are shown so you can compare directly.
It is used by the browser's own crypto and never sent anywhere. Even so, treat any secret pasted into any web tool as exposed and rotate it.
What people who use the HMAC Generator think of it. Reviews come from visitors and are posted as written.
No ratings yet
Yours would be the first.
0 reviews
Newest first
No reviews yet
Be the first to rate the HMAC Generator. It takes half a minute and no account.
Write the first reviewGenerate serde-ready Rust structs from a sample JSON document.
Compute a CRC-32 checksum in hex, decimal and signed form.
Generate believable company names, domains and details for mockups.
Collapse nested JSON into one flat level of dot-notation or bracket keys.
Build an accessible HTML table from pasted data or by hand.
Find what runs on a port, with a note on whether it should be exposed.
Compare two JSON documents structurally and see exactly which paths changed.
Collapse a SQL query to one line and strip its comments.