How to use Base32 Encode / Decode
What it does & when you need it
Base32 encodes arbitrary bytes using only the uppercase letters A–Z and the
digits 2–7 — an alphabet with no lowercase, no punctuation, and no easily
confused characters. That makes it the format of choice for things humans type or
read aloud: TOTP two-factor secrets in authenticator apps, onion service
addresses, DNS-safe identifiers, and case-insensitive file names. This tool
encodes text to Base32 and decodes it back, with full UTF-8 support, entirely in
your browser so a 2FA seed or private token never touches a server.
How to use
- Choose Encode or Decode at the top.
- Type or paste into the left buffer, or press Sample to load an example. In Encode mode you can also Upload a text file.
- The result appears on the right. Press Copy result or
Ctrl/Cmd+Enterto copy it.
Things worth knowing
Base32 is encoding, not encryption. The mapping is public and fully reversible, so it hides nothing. Its job is to let binary or non-ASCII data survive a text-only, case-insensitive channel — not to protect a secret. Anyone can decode it in one step.
Why the = padding appears. Base32 packs five bytes (40 bits) into eight
characters. When your input is not a multiple of five bytes, the final group is
padded with = so the length stays a multiple of eight. One leftover byte ends in
six =, four leftover bytes in a single =.
Decoding is forgiving. Input is uppercased before decoding, so lowercase works
too, and any spaces, tabs, or newlines are ignored — handy when a secret is printed
in groups of four. Characters outside the A–Z 2–7 alphabet, including the
digits 0, 1, 8, and 9, are rejected with an error rather than decoded to
garbage.
Base32 is bulkier than Base64. It produces eight characters per five bytes — about 60% overhead versus Base64's 33% — the price it pays for a safer, smaller alphabet. If size matters more than legibility, the Base64 tool is the better fit; to hash rather than transport bytes, see the hash generator.