November 10, 2026

Base32 Encoder / Decoder

Base32 is the quieter cousin of Base64: it encodes binary data using only the 32 characters A to Z and 2 to 7, which makes it ideal anywhere case-insensitivity matters. That is why you meet Base32 in two-factor authentication secrets, in some file-sharing and DNS contexts, and in systems that must survive being typed, shouted or printed without ambiguity — there are no lower-case letters to confuse, no plus signs or slashes to break a URL, and no characters that look alike. The trade-off is size: Base32 output is about sixty percent larger than the input, versus about thirty-three percent for Base64. This tool implements the standard RFC 4648 alphabet with padding, so its output matches other Base32 tools and libraries, and it decodes just as easily back to the original text.

Quick Answer: Paste text to encode it as Base32, or paste a Base32 string to decode it back — standard RFC 4648 alphabet, with padding handled automatically.

Free Online Tool

Base32 Encoder / Decoder



How to Use the Base32 Encoder / Decoder

  1. Choose Encode to turn text into Base32, or Decode to reverse it.
  2. Type or paste your text or Base32 string into the input box.
  3. Press Convert and read the result in the output box.
  4. Copy the result for use in an authenticator setup, config file or message.
  5. To check a result, run it through the opposite mode — you should get the original back.

Key Features

  • Standard RFC 4648 alphabet (A–Z, 2–7) with = padding
  • Both encode and decode directions in one tool
  • Padding-tolerant decoding, including unpadded input
  • Unicode-safe: text is encoded as UTF-8 first
  • Everything runs locally; nothing is uploaded anywhere

Best Practices and Tips

  • Base32 secrets for authenticator apps are usually shown without spaces — remove spaces before decoding if a tool complains.
  • If output looks longer than expected, that is normal: five input bytes become eight Base32 characters.
  • Lower-case Base32 input is accepted by most decoders, but the standard output is upper-case — use upper-case when sharing.
  • When comparing outputs across tools, check the padding: some tools strip trailing = signs, which changes nothing about the data.
  • For one-time-password secrets, prefer Base32 over Base64 precisely because it survives case-insensitive copying.

Common Mistakes to Avoid

  • Confusing Base32 with Base64: they use different alphabets and are not interchangeable.
  • Dropping padding and then wondering why a strict decoder rejects the string — this tool tolerates it, others may not.
  • Encoding text as Latin-1 instead of UTF-8, which corrupts non-English characters on decode.
  • Including the digits 0, 1, 8 or 9 in a Base32 string: the alphabet only contains 2 to 7.

Frequently Asked Questions

What is Base32 encoding?

Base32 is a binary-to-text encoding that represents data using 32 characters: the letters A to Z and the digits 2 to 7. It is defined in RFC 4648 and is used where case-insensitive, unambiguous text is needed, such as two-factor authentication secrets.

How is Base32 different from Base64?

Base64 uses 64 characters including upper and lower case plus two symbols, so it is more compact but case-sensitive and URL-hostile. Base32 uses only upper-case letters and digits 2 to 7, so it survives case changes and is safer to read aloud or print, at the cost of longer output.

Why does Base32 output end with = signs?

The = characters are padding: they mark that the final group of input bytes was incomplete. Padding is optional for decoding in many tools, but including it makes the length a clean multiple of eight characters and matches the standard.

Can Base32 encode any text, including emoji?

Yes. The text is first converted to UTF-8 bytes, then encoded, so any Unicode character — accented letters, emoji, symbols — round-trips correctly through encode and decode.

What characters are valid in Base32?

Only A to Z and the digits 2 to 7, plus = padding at the end. The digits 0, 1, 8 and 9 never appear in valid Base32, which is deliberate: it avoids confusion between 0 and O, and 1 and I.

Related Tools