Authorization Header Decoder

Paste an HTTP Authorization header and see what it actually carries: the auth-scheme, Basic credentials decoded into username and password, a Bearer token's structure, and Digest or AWS SigV4 parameters. Decoded in your browser — the credentials never leave your device.

Try:
Decoded header

About this tool

An HTTP Authorization header is two things glued together: an auth-scheme and the credentials that follow it (RFC 7235). This tool takes them apart and tells you what each half means, whichever scheme you paste.

Paste a whole header line (Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==), just the value (Basic …), or even a naked base64 credential with no scheme at all — it is accepted and reported as such. Line breaks from a wrapped log line are treated as spaces. Everything runs in your browser via WebAssembly; the header is never uploaded.

What it decodes

Options

Limits and edge cases

FAQ

Are my credentials uploaded anywhere?

No. The decoding runs inside your browser tab as WebAssembly — the header never leaves your device, and there is no server-side step. That said, base64 is encoding, not encryption: if a header has been pasted somewhere it shouldn't, rotate the credential rather than trusting that it stayed hidden.

Why doesn't it show the JWT payload claims?

By design. A Bearer token here is described structurally — JWT vs opaque, segment lengths, character set, and the JOSE header with alg/typ/kid. Claim inspection and expiry validation are a different job with different options (exp/nbf handling, clock leeway), so reach for a dedicated JWT decoder for those. Everything this tool reports is about the header, not the token's contents.

What happens if my password contains a colon?

It stays in the password. RFC 7617 splits the decoded username:password string on the first colon only, so user:pa:ss decodes to username user and password pa:ss. The result includes a warning pointing this out, because it's a common source of confusion. A colon in the username is impossible to express — there would be no way to tell where the username ended.

Can I paste the whole header line, or just the value?

Either. Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==, Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== and the bare QWxhZGRpbjpvcGVuIHNlc2FtZQ== all work. Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== is accepted too. If the name is something else entirely, it's still parsed with the same grammar and you get a warning. A value with no scheme at all is guessed (JWT-shaped → Bearer, base64 of user:pass → Basic) and flagged, since a real header must start with a scheme.

What does "mask secrets" actually hide?

The Basic password, the bearer token, the raw credential string, and the secret-bearing auth-params (response, signature, mac, cnonce, sig). Non-secret context — the scheme, the username, realm, nonce, qop, the AWS credential scope, and every reported length — is kept, so a masked result is still diagnostic enough to paste into a bug report.

Does it verify the signature or check whether the token is valid?

No. This is a parser, not a verifier. It will tell you that a Digest header carries a response, that a JWT has three segments and an HS256 header, or that a SigV4 header signs host;x-amz-date — but confirming those values are correct requires the shared secret, the private key, or the full canonical request, none of which belong in a browser tool.

What is "strict" mode for?

It turns every warning into a hard error, so it doubles as a lint for header-emitting code. Run a client's header through with strict on: if it comes back clean, the scheme is spelled canonically, the base64 is padded and uses the standard alphabet, the credentials are valid UTF-8 with a proper colon, and the scheme is one that's actually registered. Anything less and you get the reason.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool authorization-header-decode "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/authorization-header-decode/?header=Authorization%3A%20Basic%20QWxhZGRpbjpvcGVuIHNlc2FtZQ%3D%3D&format=json&mask_credentials=true&strict=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.