Base32 Decode

Decode Base32 back to text, accepting lowercase, missing padding and spaces.

Base32
Text
Runs locally in your browser

About the Base32 Decode

This tool decodes RFC 4648 Base32 to text. It is case-insensitive, so lowercase input works, and it ignores spaces and trailing padding, so a key written in groups such as JBSW Y3DP decodes without cleanup. The resulting bytes are interpreted as UTF-8 text.

Characters outside the Base32 alphabet, which excludes 0, 1, 8 and 9, are reported as an error with a clear message, since they usually mean the string was mistyped or is actually Base64. That second case has a quick test: lowercase letters mixed with 0 and 1, or a plus sign anywhere in the string, mean you are holding Base64 and should paste it into Base64 Decode instead. Genuine Base32 padding only ever comes in runs of one, three, four or six equals signs.

A frequent job here is checking what an authenticator secret actually holds. Decoding a TOTP key gives back the raw shared secret bytes, which are random rather than readable, so the output looks like noise; that is correct behaviour and not a failure. The Base32 Encode tool produces this format, and Unicode Code Point Finder helps when you need to inspect the decoded characters individually.

How to use

  1. Paste the Base32 string, in any case.
  2. Read the decoded text.
  3. Spaces and padding are handled automatically.

Common questions

Does case matter?
No. Base32 is case-insensitive and this tool accepts lowercase.
It rejects my string. Why?
It contains a character outside A-Z and 2-7. Check for 0, 1, 8 or 9, which are not in the Base32 alphabet.
Is padding required?
No. Missing = padding is tolerated.