HMAC Generator Online — SHA-256/512, API Signing
Sign a message with a secret key using HMAC-SHA. Choose hex or unpadded base64url output. It runs locally. It is not a password hash and not a base for production authentication.
How HMAC works here
Enter a message and a secret key. Choose SHA-256, SHA-384, or SHA-512. The digest updates automatically through Web Crypto. Paste an expected digest to check for a match. HMAC authenticates a message with a shared secret. It is not meant for storing passwords, so use bcrypt for password hashing.
Options
- Algorithm
- HMAC-SHA-256 (the default), SHA-384, or SHA-512, which is the set Web Crypto supports natively.
- Output
- Use hex for headers and checksums, unpadded base64url for compact tokens, and standard padded base64 for APIs that expect it.
- Uppercase hex
- Applies only when output is hex. Ignored for base64 and base64url.
- Key encoding
- How the secret is decoded before HMAC: UTF-8 text (default), hex bytes, or base64 / base64url bytes.
- Verify digest
- Paste an expected digest. Comparison ignores hex case and spaces, and base64url padding.
Examples
Classic vector
Message
HMAC-SHA-256 (hex)
API body
Message
HMAC-SHA-256 (hex)
Related tools
For checksums without a secret use hash-generator. For password storage use bcrypt-hash.
HMAC FAQ
Signing digests
Is HMAC a password hash?
No. HMAC signs a message with a shared secret. For password storage use bcrypt-hash.
Is base64url padded?
No. This tool emits unpadded base64url, with no trailing =. Use the base64 output option when the API expects standard padded base64.
My API key is hex or base64, not UTF-8 text. What then?
Set Key encoding to hex or base64, so the secret is decoded to bytes before HMAC. UTF-8 would sign the characters, not the key bytes.
How do I check a digest from my backend?
Paste it in Expected digest. A match means the same message, key bytes, algorithm, and output format.
Does my secret leave the browser?
No. All HMAC computation runs locally via Web Crypto.
Encoding
Encode or decode Base64, URLs, HTML entities and JWTs, and generate hashes and HMACs in your browser.
Explore other tool categories
- Minify
Minify JavaScript, CSS, HTML, JSON, XML, SVG and other formats to cut the bytes you ship, before gzip or a CDN.
- Unminify
Make minified code readable again to debug or review it. Unminify JavaScript, CSS, TypeScript, SCSS, LESS, SQL, YAML and other formats.
- Conversion
Convert data between JSON, YAML, XML, CSV, TOML and other formats locally, with no upload to a server.
- Serialization
Serialize and deserialize PHP data structures beside JSON workflows.
- JSON Tools
Validate, format, repair, compare and explore JSON in your browser, alongside the JSON minifier and converters.
- SVG Tools
Preview, optimize with SVGO, export as a data URI, resize, beautify, convert to JSX and validate SVG in your browser.
- Beautify
Make code readable with consistent indentation. Beautify JavaScript, CSS, TypeScript, SCSS, LESS, Markdown, GraphQL, SQL, YAML and more in your browser.
- CSS preprocessors
Compile SCSS or LESS to standard CSS in your browser. Pair it with beautify or minify to handle a whole stylesheet.
- Color & CSS Tools
Check WCAG contrast, convert CSS colors and units, and generate shades, border-radius and box-shadow code in your browser.
- DevOps & Infra
Terraform HCL format/validate/minify, Dockerfile format & lint, Docker Compose and .env validation.
- CI/CD
Format GitHub Actions and GitLab CI YAML and check the structure of workflows and jobs in your browser.
- Logs & observability
Format, filter and validate JSON and NDJSON logs, and turn Nginx or Apache access logs into CSV or TSV.
- Kubernetes
Multi-doc manifests, structural validate, Ingress/Deployment starters, and Helm values formatting.
- Networking / IP
Subnet calculator, IP converter, range to CIDR, CIDR summarize and IP-in-subnet checks for IPv4 and IPv6, in your browser.
- Security & tokens
Inspect JWKS, verify JWTs, decode X.509 certificates, convert PEM and JWK, scan text for secrets and hash with bcrypt in your browser.
- API & schemas
Format, validate, lint and convert OpenAPI, JSON Schema and GraphQL SDL in your browser.
- HTTP Tools
Paste cURL commands, HTTP messages, URLs, HAR files and Cookie or Set-Cookie headers to format and inspect them. Nothing is sent.
- SEO / Web Tools
Generate meta tags, Open Graph, Twitter Card, robots.txt, sitemap.xml and JSON-LD in your browser. Previews come from your input, and your site is never fetched.
- Developer utilities
Timestamps, UUID, ULID, Nanoid, cron, passwords, regex, slugs, number bases, letter case, text diff, chmod and Lorem Ipsum, all in your browser.
- Text & Markdown
Count words, build Markdown tables of contents, turn CSV into Markdown tables and sort or deduplicate lines in your browser.
- AI & LLM
Count tokens, estimate API costs, check context-window fit, convert JSON to TOON and analyze prompts, all in your browser.
- Test Data
Dummy names, emails, phone numbers, addresses, dates, IBANs, card numbers and JSON, CSV or SQL rows for fixtures and database seeds. Everything is generated in your browser.
- Barcode labels
Draw Code 128, EAN-13 and UPC-A labels and static QR codes in your browser, then download PNG or SVG. This is not a GS1 lookup.