Unsigned JWT Builder
Build unsigned JWTs for learning—never for production.
Unsigned JWT Builder constructs a structurally valid but unsigned JSON Web Token from header and payload JSON you provide, entirely in your browser. It exists to teach JWT structure and the dangers of the alg=none vulnerability class—never to produce tokens for real authentication.
How it works
Your header and payload JSON objects are validated and Base64url-encoded independently, then joined as header.payload with an empty trailing signature segment—exactly the shape of a real alg=none JWT. No cryptographic signing operation is ever performed, even if the header claims an algorithm like HS256, to make the point that a JWT's header is unverified metadata.
Benefits
- Clear, hands-on demonstration of JWT structure
- Illustrates why the alg header claim can never be trusted blindly
- Runs entirely client-side—no network calls
- Useful for building test fixtures for claim-reading (not verification) code
Use cases
- Teach students or new engineers how JWTs are structured
- Demonstrate historical alg=none and alg-confusion vulnerabilities
- Generate test fixtures for parsers that only read claims in trusted test environments
- Show why signature verification must happen server-side, independent of header claims
Best practices
- Never accept alg=none tokens in any production authentication or authorization system
- Always pin the expected signing algorithm server-side instead of trusting the token header
- Use this tool only in learning, testing, or security-training contexts
- Pair this demo with a real signing tool (like HMAC Generator) to show the contrast
Common mistakes
- Mistaking an unsigned demo token for something a real server should accept
- Assuming setting alg to a strong algorithm in the header makes a token trustworthy
- Using output from this tool against a real, production authentication endpoint
- Forgetting that claims in an unsigned token can be changed by anyone with no detection
Privacy
Token construction happens entirely client-side—no header or payload data is uploaded to ToolHub. Because the payload may resemble real claims, on-device history requires explicit opt-in.
Frequently asked questions
- Is it ever safe to use alg=none in production?
- No, never. The "none" algorithm means no signature at all—anyone can craft any claims they want. Numerous real-world vulnerabilities have come from servers that accepted alg=none tokens. Always require and verify a strong signature algorithm server-side.
- Does this tool sign the JWT with any algorithm?
- No. This builder never computes a cryptographic signature, regardless of what the header's "alg" field claims. It only Base64url-encodes the header and payload JSON you provide and appends an empty signature segment, for learning purposes only.
- Why does the tool still work if I set alg to HS256?
- On purpose. This demonstrates that a JWT's header is just self-declared, unverified metadata—setting alg to HS256 in the header does not make the token actually signed. Real signature verification must happen independently, using a trusted key.
- What is this tool useful for, then?
- It is useful for learning JWT structure, building test fixtures for code that only needs to read claims (not verify signatures) in a trusted test environment, and demonstrating alg-confusion vulnerabilities to students or teammates.
- Can a server accept a token built with this tool?
- It should not, if the server correctly verifies signatures. If it does accept an unsigned or mis-signed token, that is a serious security bug in that server, not a feature of JWTs.
- Does this tool upload my header or payload JSON?
- No. Encoding happens entirely in your browser using TextEncoder and Base64url—no network request is made.
Related tools
JWT Decoder
security
Inspect JWT header and payload locally—no signature verify.
- jwt
- token
- decode
- security
HMAC Generator
crypto
HMAC-SHA256/384/512 signing via Web Crypto.
- hmac
- sha256
- webhook
- signature
HTTP Headers Parser
security
Parse raw HTTP headers into a structured list.
- http
- headers
- parser
- debugging
Password Strength Checker
security
Local entropy and checklist-based password strength check.
- password
- security
- strength
- entropy
PEM Decoder
security
Inspect PEM structure and Base64 body locally.
- pem
- certificate
- csr
- x509
Security Headers Analyzer
security
Check for missing common security response headers.
- security-headers
- csp
- hsts
- http