Skip to content

Base32 Decoder

Paste a Base32 string and get the original text back, with a precise message if a character or length is wrong.

Processed locally in your browser

Options
0 chars · 0 lines
The result will appear here.

What is Base32 Decoder?

Base32 turns every 5 bytes into 8 characters from a 32-symbol alphabet. Decoding reverses that and then reads the bytes as text. It shows up in TOTP secrets, onion addresses, some file-sharing hashes and legacy systems that cannot rely on lowercase letters.

This decoder ignores whitespace and letter case, tolerates missing "=" padding, validates every character against the chosen alphabet (standard A–Z 2–7, or Extended Hex 0–9 A–V) and rejects lengths that no valid Base32 can have. Bytes are read as UTF-8 by default.

How does it work?

  1. Paste the Base32 value; spaces and line breaks are ignored.
  2. Select the alphabet: RFC 4648 for almost everything, Extended Hex only if the source says base32hex.
  3. Read the decoded text, or fix the input using the position reported in the error message.

Common use cases

  • Checking what an authenticator secret or otpauth URL parameter really contains in a test environment.
  • Decoding identifiers found in DNS records, logs or configuration files.
  • Validating another Base32 library against the RFC 4648 test vectors.
  • Recovering text from a system that avoids lowercase and special characters.

Examples

Try this input in the tool above:

Input
JBSWY3DPFQQEEYLTMUZTEII=
Output
Hello, Base32!

Privacy

Base32 Decoder runs entirely in your browser. The text or files you provide are processed on your device and are not uploaded, logged or stored on our servers.

Limitations

A successful decode says nothing about who produced the data, and binary payloads cannot be shown properly as text.

Frequently asked questions

Why do I get an invalid character error for 0, 1, 8 or 9?

The standard Base32 alphabet only contains A–Z and 2–7. Digits 0, 1, 8 and 9 are excluded to avoid confusion with O, I, B and g. If your data uses 0–9, try the Extended Hex alphabet.

Does it matter if the string is lowercase?

No. Case is ignored: mzxw6ytboi decodes exactly like MZXW6YTBOI.

What does an impossible length mean?

Base32 blocks contain 2, 4, 5, 7 or 8 useful characters. A remainder of 1, 3 or 6 characters cannot come from whole bytes, so the string was probably cut off.

More tools in Encoding & Decoding →