How to use the Base32 encoder
- Type or paste your text into Text to encode.
- Choose the Alphabet: Base32 (A–Z, 2–7) for most uses, or Base32hex (0–9, A–V) if a system asks for the “extended hex” alphabet.
- Leave Pad with = ticked for standard output, or untick it to drop the trailing = signs.
- Copy the Base32 result. Below it you see the input size in bytes and the output length in characters.
What it does and when to use it
Base32 writes any bytes using only 32 safe characters. Because the alphabet has no lowercase letters and no look-alike digits, it survives being read over the phone, printed, or typed in by hand. It also works where case is ignored, such as DNS names.
The most common place you meet it is two-factor authentication. Authenticator apps usually share their secret key as a Base32 string, and the TOTP secret generator produces keys in this form.
Base32 is an encoding, not encryption. To turn Base32 back into text, use the Base32 decoder. If size matters more than readability, Base64 is shorter, and the Base45 encoder is designed for QR codes.
How it works
The tool follows the Base32 and Base32hex alphabets in RFC 4648, sections 6 and 7.
- Your text becomes UTF-8 bytes. “Hello” is 5 bytes; “é” is 2 bytes.
- The bytes are read as one long stream of bits and cut into 5-bit groups. Each group is a number from 0 to 31.
- Each number picks one character from the chosen alphabet.
- Every 5 bytes (40 bits) give exactly 8 characters. If the last group is short, it is filled with zero bits, and with padding on, = signs are added until the length is a multiple of 8.
Everything happens in your browser; the text is not uploaded.
Worked examples
Hello → JBSWY3DP
foobar (Base32hex) → CPNMUOJ1E8======
Hi! (no padding) → JBUSC
12345678901234567890 → GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
“Hello” is exactly 5 bytes, so it fills 8 characters with no padding. “foobar” in Base32hex is one of the RFC 4648 test vectors: 6 bytes need 10 characters, padded to 16. “Hi!” is 3 bytes and needs 5 characters; with padding on, three = signs would follow.
The last line is the 20-byte ASCII seed used in the RFC 6238 TOTP test vectors.
Limits and tips
- Text is always encoded as UTF-8. If a system expects Latin-1 or UTF-16 bytes, the result will not match theirs.
- Base32hex output decodes only with the Base32hex alphabet. Mixing the two gives wrong bytes or an error.
- This encoder takes text only. It cannot encode raw bytes typed as hex; a 20-byte random key, for example, must come from a tool that outputs Base32 directly.
Frequently asked questions
Is Base32 a way to hide or encrypt text?
Why is Base32 longer than Base64?
What is the difference between Base32 and Base32hex?
Should I keep the = padding?
Why are there no 0, 1 or 8 in standard Base32?
Sources
- RFC 4648: The Base16, Base32, and Base64 Data Encodings — IETF / RFC Editor, accessed 2026-10-08
- RFC 6238: TOTP: Time-Based One-Time Password Algorithm — IETF / RFC Editor, accessed 2026-10-08
How do we know nothing is uploaded? Test it yourself on the privacy proof page.