Why does my JWT payload look like Base64?
A JWT is three Base64url segments joined by dots: header.payload.signature. The middle segment is a Base64url-encoded JSON object containing the claims (sub, iat, exp, custom claims). Copy just the middle segment, paste it into this tool, and the JSON claims become readable. The header and signature parts are not JSON in the same way and use the same Base64url encoding.
Is the result URL-safe Base64 or standard Base64?
The decoder accepts both. Standard Base64 uses + and / with = padding; URL-safe Base64url replaces + with - and / with _ and may omit padding. The tool normalises - to +, _ to /, and re-adds missing padding before calling atob, so you can paste either flavour without preprocessing.
How do I decode a Kubernetes Secret data field?
kubectl get secret <name> -o yaml shows the data: map with each value Base64-encoded. Copy a single value (the string after the key:), paste it here, and if the original was JSON (for example a service-account.json or a config blob) it will be decoded and pretty-printed. For non-JSON secrets, use a plain Base64 decoder.
Will this tool verify a JWT signature?
No. This is a decoder, not a verifier. It reads the payload claims so you can inspect the data, but it does not validate the HMAC or RSA signature against the issuer's key. Treat the decoded claims as untrusted input — never trust them for authorisation without server-side verification.
What if the decoded Base64 is not JSON?
The decoder reports a JSON parse error and shows the problem. The decoded bytes might be plain text, a binary blob, or a JWT segment that needs further parsing. Use the plain Base64 Decoder tool to view non-JSON content as raw text.
Why does my decoded JSON contain garbled characters?
The original payload was UTF-8 but was decoded as ASCII somewhere upstream. This tool decodes through decodeURIComponent(escape(atob(...))) so multi-byte UTF-8 sequences (emoji, accented characters, CJK glyphs) survive correctly. If you still see mojibake the Base64 itself is corrupted — check for accidental whitespace or truncation when copying.
Is my Base64 sent to your servers?
No. Decoding and JSON parsing happen entirely in your browser using atob and JSON.parse. JWTs and Secrets often contain user IDs, email addresses, or scopes you do not want logged externally — open DevTools Network tab and confirm no requests are made when you click Decode.
Can I decode multiple Base64 strings at once?
The decoder processes one string per run. For batch decoding (for example, decoding every value in a Kubernetes Secret data map) script it locally with jq and base64 -d, or run the decoder repeatedly — nothing is uploaded so there are no rate limits.