Using the wrong signing string
Many APIs build a canonical string to sign. Passing the raw body without canonicalization produces a different signature.
Fix: Follow the API's canonical request specification exactly.
header • up to 320x100 / 728x90
Generate an HMAC-SHA1 code to sign webhook payloads, AWS-style requests, or legacy API authentication schemes.
Output will appear here...
content bottom • up to 300x250
sidebar • 160x600
Last reviewed:
HMAC (Hash-based Message Authentication Code) combines a cryptographic hash with a secret key to verify both the integrity and authenticity of a message.
HMAC-SHA1 Generator returns an RFC 2104 HMAC-SHA1 signature of a message using a shared secret key, in hexadecimal form.
Although HMAC-SHA256 is preferred today, HMAC-SHA1 still drives OAuth 1.0, many webhook providers, legacy AWS signing, and assorted enterprise APIs, so a quick reference tool is valuable.
message: webhook-signature key: sha1-webhook-key
d8d02d8f7f7e4b9f7fba94f2b6a7c1abde5e7a5e
Many APIs build a canonical string to sign. Passing the raw body without canonicalization produces a different signature.
Fix: Follow the API's canonical request specification exactly.
Some services expect base64 instead of hex.
Fix: Convert hex to base64 with a dedicated tool if your peer expects that format.
Extra whitespace or wrong encoding in the key changes the signature.
Fix: Confirm the key is exactly the shared secret, with no trailing newline.
It is considered acceptable for authentication because of the secret key, but new systems should use HMAC-SHA256.
160 bits (40 hex characters).
Yes, convert the hex result to base64 using a text-to-base64 tool.
Most commonly the canonical string, headers, or encoding differ. Double-check both exactly.
Yes. `crypto.createHmac('sha1', key).update(msg).digest('hex')` produces the same output.
No. HMAC is computed in the browser.
Try HMAC-SHA256 for stronger signatures, or inspect raw SHA-1 and OAuth helpers. You can also browse the full Cryptography & Hashing category for more options.
Generate SHA-1 cryptographic hash
Generate HMAC authentication codes
Generate MD5, SHA-1, SHA-256, SHA-384, SHA-512, or SHA3 checksums from pasted text, perfect for quick integrity checks and deduplication.
Generate an HMAC-MD5 message authentication code from a plaintext message and shared secret key.
Generate a keyed SHA-224 HMAC fingerprint for compact message authentication in embedded and IoT systems.
Generate an HMAC-SHA256 code for signing JWTs, webhook payloads, API requests, and OAuth tokens.
Generate an HMAC-SHA3 keyed-hash authentication code using the Keccak family for modern cryptographic workflows.
Generate an HMAC-SHA384 code for enterprise-grade message authentication and PCI-friendly signatures.
Generate an HMAC-SHA512 code for high-entropy signatures on large payloads and long-lived tokens.
Generate NTLM password hash
Encrypt plaintext with AES and a passphrase, or decrypt CryptoJS-formatted ciphertext back to readable text, entirely in your browser.
Generate CRC-16 checksum