§ Tool 13 of 23 · Format

Tokens, signed and seen.

Encode and decode JSON Web Tokens with HMAC (HS256/384/512) and RSA (RS256/384/512) signatures. CryptoKit handles HMAC; the Security framework handles RSA. The interface adapts to the algorithm — secret key for HMAC, PEM key for RSA.

Algorithms
HS · RS
HMAC and RSA, 256/384/512
Crypto
CryptoKit · Security
First-party Apple frameworks
Direction
Encode · decode
Verify on decode
Network
Offline
Pure local
DevUtilities JWT — header / payload / signature panes, algorithm picker, key field.
Plate xiii — JWT with the algorithm picker driving the key UI.
§ 01Capabilities

Seven things it does carefully.

i

HMAC algorithms

HS256, HS384, HS512 — backed by CryptoKit. Sign and verify with a shared secret.

ii

RSA algorithms

RS256, RS384, RS512 — backed by the Security framework. PEM-formatted keys, sign with private, verify with public.

iii

Adaptive UI

The interface morphs based on algorithm — secret-key field for HMAC, public/private key fields for RSA.

iv

Auto-detect on decode

Paste a token; the algorithm is read from the header and the right inputs appear.

v

Header / payload / signature

Three panes, each clearly labelled. Edit any of them; encode rebuilds the token.

vi

Sample keys

Paste a token without a key and the sample RSA pair fills in — useful for sanity-checking decoding.

vii

Verify status

Decoded tokens show a clear "verified" / "invalid signature" badge; valid tokens get a green tick.

§ 02A typical session

Four moves around a JWT.

Pick algorithm

HMAC for shared-secret tokens, RSA for asymmetric. Or paste a token and let the header tell us.

Algo picker

Provide a key

HMAC: a secret string. RSA: a PEM-formatted key. The fields adapt as the algorithm changes.

Key input

Encode or decode

Edit the header / payload to encode; paste a token to decode.

Both

Read the verdict

"Verified" or "Invalid signature" — clearly displayed. Copy the token or the claims.

Status badge
§ 03Made for these tasks

The work it actually does.

i — Auth

Inspecting tokens

Decode a JWT from a request header and read the claims without trusting an online tool with your secret.

ii — Issue

Token generation

Sign a fresh token with a known key for testing flows that require specific claims.

iii — Audit

Verification

Confirm a token was issued by the expected key. Mismatches are flagged immediately.

iv — Debug

Header inspection

Read kid, typ, and alg headers when integrating with multiple identity providers.

v — Migrate

HMAC ↔ RSA

Re-issue a token under a different algorithm when migrating signing infrastructure.

vi — Test

Fixture tokens

Generate canonical tokens for unit and integration tests, with controlled expiration claims.

§ 04Questions, answered

Things people ask before they download.

Which algorithms are supported?

HS256, HS384, HS512 (HMAC); RS256, RS384, RS512 (RSA). Six in total, covering the bulk of real-world JWT usage.

How are RSA keys provided?

As PEM-formatted public and private keys. The tool ships with a sample pair; replace them with your own when signing real tokens.

Where does the cryptography come from?

Apple's first-party frameworks. CryptoKit handles HMAC; the Security framework handles RSA key import and signing.

Is the secret key stored?

Only in your local session, so the panel restores after relaunch. Keys never leave your machine; the tool makes no network calls.

Does it verify expiration claims?

The tool decodes exp, iat, and nbf as readable timestamps. Whether the token is currently valid is up to your context.

What happens when the signature is wrong?

The status badge shows "Invalid signature"; the decoded claims are still visible so you can see what was attempted.

Does this require network access?

No. JWT encode/decode is fully local.

§ 05Companion tools

Better with the rest of the shelf.

§ Download

Encode, decode, verify — locally.

Download — Mac App StoreChangelog