Want a Custom tool for Yourself?

Need a Custom Tool? We build custom tools that can save hours per employee per day.

Base32 Decode

BASE32 decode made simple. Paste text or upload a file, pick encoding if needed, then copy the output when ready.

Base32 Decode



Last updated: February 2, 2026

Created by: Eon Tools Dev Team

Reviewed by: Bhabin Khadka



What the Base32 decoder does

This takes a Base32 string and turns it back into the original text it was made from. Paste the Base32 in, choose the variant it uses, press Convert, and copy or download the result. It is the reverse of the Base32 Encode tool, which is also where the fuller explanation of what Base32 is and where it shows up lives.

The decoding happens in your browser, so nothing you paste is uploaded.

How to use it

  1. Paste your Base32. Type or paste it, or upload a plain text file. Upper or lower case is fine, Base32 does not care.
  2. Pick the variant. Choose the same one the string was encoded with. This matters, and the next section explains why.
  3. Press Convert. The decoded result appears, ready to Copy or Download.

Match the variant it was encoded with

This is the one thing that catches people out. Base32 comes in a few variants that use different characters, and a string only decodes correctly with the same one it was encoded in. The Standard variant uses A to Z and 2 to 7, Base32hex uses 0 to 9 and A to V, and Crockford's uses its own reduced set. If you decode a Standard string as Base32hex, the characters mean different values and you get back nonsense, or an error if the string contains characters that variant does not allow. So pick the matching variant, and when in doubt, try Standard first, since it is by far the most common. The good news is that case is never an issue, because Base32 treats uppercase and lowercase as the same.

What you get if you decode a secret key

Worth setting expectations here, because it surprises people. If you paste in a two-factor secret key, the sort of Base32 string an authenticator app gives you, the decoded result will look like a jumble of strange characters, not anything readable. That is not a bug. Decoding gives you back exactly the bytes that were encoded, and a 2FA secret is random data, not words. It was never text to begin with, so turning it back gives you raw bytes, which display as gibberish. This tool is at its most useful when the Base32 was made from actual text, in which case you get that text straight back. When the original was random or binary data, the readable output simply will not be meaningful, and that is the data being honest with you rather than the tool failing.

How it works

Decoding runs the encoding backwards. Each Base32 character stands for a 5-bit value, and the decoder lines those 5-bit groups back up into whole 8-bit bytes, turning every eight characters back into five bytes. Any = padding at the end is recognised and dropped, and case is normalised along the way, so the original bytes come out the other side. The same base32.js library that powers the encoder handles the decode.

Questions people ask

How do I decode a Base32 string?

Paste it, choose the matching variant, and press Convert. If it was made from text, the original text appears, ready to copy or download.

Why is my decoded output unreadable?

Because the Base32 was made from binary or random data, not text, such as a 2FA secret key. Decoding returns the original bytes faithfully, but those bytes were never readable characters to begin with.

Does upper or lower case matter?

No. Base32 is case-insensitive, so the same string decodes the same way regardless of case.

It gave an error. What went wrong?

Usually the variant does not match, or the string contains characters that variant does not use. Try the Standard variant first, and check the string was copied completely.

References

  1. Josefsson, S. (2006). RFC 4648: The Base16, Base32, and Base64 Data Encodings. Internet Engineering Task Force (IETF). https://www.rfc-editor.org/rfc/rfc4648
  2. base32.js, a Base32 encoder and decoder for JavaScript (npm package). https://www.npmjs.com/package/base32.js


Bhabin Khadka

Bhabin Khadka is a software engineer and graduate student at the University of New England with experience in backend development and scalable systems. He has a particular interest in file systems and the kinds of technical utilities that depend on dependable handling of structured data. At Eon Tools, he reviews file and document tools, as well as encode and decode tools.