Base32 Encoder / Decoder
This Base32 encoder and decoder converts text using the RFC 4648 alphabet — A to Z and 2 to 7 — chosen so the result survives systems that change case and is unambiguous when read aloud or typed by hand. That is why Base32 turns up in TOTP secrets, onion addresses and DNS records where Base64 would not survive the trip. It costs more space than Base64, turning every 5 bytes into 8 characters for a 60% increase against Base64 33%, and the trade is deliberate: you pay in size for an alphabet that cannot be garbled. The extended hex alphabet is available too, which sorts in the same order as the data it encodes.
How it works
Base32 encodes binary data using 32 characters — A to Z and 2 to 7 — chosen so the result survives case-insensitive systems and is unambiguous when read aloud or typed by hand. That is why it is used for TOTP secrets, onion addresses and DNS records where Base64 would not survive.
It costs more space than Base64: every 5 bytes become 8 characters, a 60% increase against Base64’s 33%. The trade is deliberate — you pay in size for an alphabet that cannot be garbled.
Everything runs in your browser — nothing you paste is sent to a server.
Where Base32 is actually used
- TOTP secrets — the key behind an authenticator app is shared as Base32, because people have to be able to type it.
- Tor onion addresses — encoded as Base32 since DNS-style names are case-insensitive.
- DNS records — NSEC3 hashes use Base32 for the same reason.
- Human-readable identifiers — anywhere a code has to be read off a screen and typed elsewhere.
The alphabet is the whole point
Base32 deliberately omits 0, 1 and 8, because they are hard to tell apart
from O, I and B in most typefaces. That single decision is why a Base32
string can be dictated over a phone and typed correctly at the other end.
Padding
Encoded output is padded with = to a multiple of 8 characters. The padding carries no data — it only
tells a strict decoder how many bits of the last group are real. Decoding here works with or without it.
Frequently asked questions
How do I encode text as Base32?
Paste your text into the left panel with the direction set to encode. The Base32 string appears on the right immediately.
Why use Base32 instead of Base64?
Base32 uses only uppercase letters and the digits 2 to 7, so it survives case-insensitive systems like DNS and is far easier to read aloud or type from a screen. Base64 is more compact but uses both cases plus + and /.
Why 2 to 7 and not 0 to 9?
The digits 0, 1 and 8 are left out because they are easily confused with O, I and B. Dropping them is what makes the alphabet safe to dictate over a phone.
What is the extended hex alphabet?
A variant using 0 to 9 and A to V. Its advantage is that encoded values sort in the same order as the data they represent, which matters when Base32 strings are used as sortable keys.
Why is the output longer than Base64?
Base32 packs 5 bits per character against Base64 6, so 5 bytes become 8 characters — about 60% larger than the input, where Base64 adds about 33%.
Is my data uploaded?
No. Encoding and decoding happen entirely in your browser.
Related tools
Base64 Encoder / Decoder
Encode text to Base64 or decode Base64 back to plain text, entirely in your browser, with full UTF-8 support.
Text to Hex Converter
This text to hex converter shows UTF-8 bytes in hexadecimal, and converts them back.
All Hash Generator (MD, SHA, CRC & more)
This hash generator computes MD5, SHA-1/256/512, SHA-3, RIPEMD-160, Whirlpool, CRC32 and NTLM hashes from text, instantly in your browser.