OneFreePlace
TOOL #372 · CRYPTOGRAPHIC MESSAGE AUTHENTICATION LAB

HMAC Generator

Create standards-compatible HMAC tags with exact byte control—not a toy text hasher. Choose message/key encodings, inspect the bytes being authenticated, compose webhook signing strings, generate strong random secrets, and export implementation-ready results. Everything stays in your browser.

SHA-256 / 384 / 512Legacy SHA-1 warningUTF-8 / Hex / Base64 / Base64URLWebhook string composerRandom secret generatorByte fingerprintsAll output encodings100% local

Message

exact input bytes

No upload. Newline normalization is applied only when you explicitly select it.

Secret key

Waiting
Use a randomly generated secret and store it outside source code.
Algorithm—
Message bytes—
Key bytes—
Tag bytes—
Message fingerprint—
Key fingerprint—

Exact byte inspector

Message hex preview—
Key hex preview—
Output size—

Why this is safer than a generic hash box

Byte-explicitYou control encodings and line-ending normalization.
Uses Web CryptoHMAC is performed by the browser cryptography implementation.

Timestamp + payload composer

Many webhook systems authenticate an exact string such as timestamp.payload. Build it visibly before signing—never assume the separator or field order.

Exact signing string

Characters0
UTF-8 bytes0
This composer is protocol-neutral. Always follow the exact signing-string rules documented by your webhook provider.

Node.js

Python

PHP

OpenSSL CLI

HMAC is not encryption

HMAC authenticates a message with a shared secret. Anyone with the secret can create valid tags, so secret management matters.

Compare exact bytes

Different Unicode encodings, whitespace, JSON formatting, or newline conventions produce different HMAC values. The byte inspector makes those differences visible.

Key length

For new random secrets, RFC 2104 recommends at least the hash output length: 32 bytes for SHA-256, 48 for SHA-384, and 64 for SHA-512.

Privacy

The tool makes no network requests and does not store your message or secret. Reloading the page clears the working state.