Base32 Encoder and Decoder
Encode text to RFC 4648 Base32 and decode it back in your browser. Your input stays on your device.
The Base32 Encoder / Decoder runs entirely in your browser. The text and Base32 strings you encode or decode never leave your device and nothing is uploaded to ArrayKit.
Open the Base64 Encoder / Decoder
About Base32 Encoder / Decoder
The Base32 Encoder / Decoder converts UTF-8 text to RFC 4648 Base32 and turns Base32 back into readable text. Base32 uses the 32-character alphabet A–Z and 2–7, so the output is case-insensitive and safe to type, dictate, or embed in filenames and URLs where Base64's mixed case and +/ symbols cause trouble. Encode mode pads the result to an 8-character boundary with '=', and a toggle lets you drop the padding when a system expects it bare. Decode mode is forgiving: it accepts lowercase, ignores whitespace, and reconstructs missing padding, while flagging any character outside the alphabet. It is handy when you work with TOTP secrets, DNS records, or Bitcoin-style identifiers. Everything runs on your device — the text you paste never leaves your browser.
Features
- Encode UTF-8 text to RFC 4648 Base32 using the A–Z, 2–7 alphabet
- Decode Base32 back to the original text, including emoji and accents
- Padding toggle to add or omit the trailing '=' characters
- Decoder accepts lowercase input and normalizes it automatically
- Tolerates missing padding and stray whitespace when decoding
- Clear error banner when input contains characters outside the alphabet
- One-click copy of the encoded or decoded result
- Runs entirely in your browser with no text sent anywhere
How to use the Base32 Encoder / Decoder
- Keep the Encode tab selected and type or paste your text
- Copy the Base32 output, or turn off Padding to drop the '=' characters
- Switch to Decode and paste a Base32 string to recover the text
- Read the error banner if the input has characters outside A–Z or 2–7
Example
Input
foobar
Output
MZXW6YTBOI======
"foobar" encodes to the canonical RFC 4648 padded Base32 value.
Common errors & troubleshooting
- Decode shows 'characters outside the Base32 alphabet.' — Base32 uses only A–Z and the digits 2–7. Remove any 0, 1, 8, 9, or symbols — a common mistake is pasting a Base64 string, which is a different alphabet.
- Another tool rejects your output for having '=' at the end. — Turn off the Padding toggle so the encoder omits the trailing '=' characters, then copy the unpadded string.
- A pasted Base32 secret from an app fails to decode. — Strip any spaces the app inserted for readability. The decoder ignores whitespace, but hyphens or other separators must be removed first.
- Decoded text looks like garbled bytes rather than words. — The value may be raw binary (like a TOTP key) rather than UTF-8 text, so it will not display as readable characters even though the decode succeeded.
Frequently asked questions
- What is Base32 and how is it different from Base64?
- Base32 encodes binary data using only A–Z and 2–7, so it is case-insensitive and avoids the +, / and mixed case of Base64. It is longer than Base64 but easier to type, read aloud, and use in URLs or filenames.
- Which Base32 alphabet does this tool use?
- It uses the standard RFC 4648 alphabet: the letters A through Z followed by the digits 2 through 7, with '=' as the padding character. It does not use the Crockford or z-base-32 variants.
- Can I decode Base32 that is lowercase or has no padding?
- Yes. The decoder uppercases the input for you and reconstructs any missing '=' padding, so lowercase and unpadded Base32 both decode correctly without extra steps.
- Should I keep the padding on or off?
- Padding follows RFC 4648 and keeps the output a multiple of eight characters, which most systems expect. Turn it off only when a specific format or field wants the bare string without trailing '='.
- Is my text sent to a server when I encode or decode?
- No. The Base32 Encoder / Decoder runs entirely in your browser. The text and Base32 strings you paste stay on your device and are never uploaded to ArrayKit.
Related tools
All ArrayKit tools