Base32 to Text
Decode Base32 strings back into readable text
Reading Base32-encoded strings
Base32 represents binary data using only the letters A to Z and the digits 2 to 7. It shows up in two-factor authentication secrets, some file-sharing identifiers and systems that need case-insensitive, easy-to-dictate text. When you have a Base32 string and want to know what it says, this decoder turns it back into plain text.
Decoding in four steps
- Paste the string into the Base32 Input box. Spaces and line breaks are removed automatically, and lowercase letters are converted to uppercase.
- Click Decode Base32.
- Read the text in the Decoded Text card. Below it, Input Integrity shows Valid and Character Count shows the length of the decoded text.
- Press Copy Text to copy the result.
How the decoding works
- Trailing equals signs used as padding are stripped before decoding, so padded and unpadded strings both work.
- The alphabet is the standard RFC 4648 one (A-Z and 2-7). Strings written in the extended-hex or Crockford variants use different letters and may fail or decode to nonsense.
- Each character is turned into five bits, the bits are regrouped into eight-bit bytes, and leftover bits at the end are discarded.
- The bytes are interpreted as UTF-8, so accented letters and other languages come out correctly if they were encoded that way.
Everyday uses
- Checking what an otpauth secret or similar token string contains while debugging an authenticator setup.
- Decoding a value found in a configuration file or log that a colleague said was Base32.
- Solving encoding puzzles and capture-the-flag challenges.
- Verifying that a Base32 encoder in your own code produces the right output.
When decoding fails or looks odd
Any character outside the alphabet, such as 0, 1, 8, 9 or punctuation, triggers an alert saying the string is invalid and sets Input Integrity to Invalid. If the decoded bytes are not text, for example an encryption key or a hash, you will see replacement symbols or unreadable characters, because the tool always displays the result as text. There is no separate download button here, so use Copy Text to save the output. Decoding runs in JavaScript within the page and starts when you press the button.
Related Tools