Base32 Encode/Decode
Encode UTF-8 text or hex bytes as RFC 4648 Base32; strictly decode and download exact bytes.
This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.
Encode UTF-8 or hex bytes as canonical Base32, or strictly decode Base32 into exact bytes and valid text.
How to use it
- 1Choose text encoding, hex-byte encoding or Base32 decoding.
- 2Enter the input and deliberately enable unpadded compatibility only if your protocol requires it.
- 3Review the text or byte result, then copy or download canonical Base32 or raw bytes.
What happens to your data
Conversion runs locally. Base32 is encoding, not encryption; invalid UTF-8 is never silently repaired into replacement text.
Last updated October 2026
Encode UTF-8 text or hexadecimal bytes as RFC 4648 Base32, or decode Base32 into bytes and readable text when the bytes are valid UTF-8. Review the canonical encoding, copy the result and download the original bytes without asking a text decoder to invent replacement characters.
Base32 represents binary data using letters A–Z and digits 2–7. It is reversible encoding, not encryption. The decoded bytes can contain text, binary content or secrets, and the alphabet does not identify what those bytes mean. This page implements the standard Base32 alphabet, not Crockford Base32 or the separate Base32hex alphabet.
How it works
Choose UTF-8 Text to Base32, Hex Bytes to Base32 or Base32 to Bytes and Text. Text mode encodes the characters exactly as entered, including spaces and newlines. Browser text fields normally use LF line endings; use hexadecimal input if original CRLF or other exact bytes matter. Hex input accepts complete byte pairs with optional whitespace between whole bytes, but not prefixes, commas or split nibbles.
The encoder produces uppercase text with canonical = padding. The decoder accepts ASCII lowercase letters explicitly, but rejects whitespace, impossible lengths, misplaced padding and non-zero unused bits. If a protocol intentionally omits padding, enable the clearly labelled compatibility option; even that mode still checks length and unused bits. The tool does not silently remove unexpected characters to make damaged data appear valid.
Input is bounded to 110,000 characters and 32 KiB of bytes. Empty input is a valid zero-byte sequence. UTF-8 decoding is strict and preserves a leading byte-order mark. If the decoded bytes are not text, their hexadecimal representation and raw download remain available. Editing the source or conversion setting clears old output. Everything is processed in this browser; do not upload a downloaded binary to an unknown service or treat successful decoding as evidence that a file is safe.
Worked example: the RFC 4648 foobar test vector
- Input
- foobar
- Result
- MZXW6YTBOI======
The six equals signs are canonical padding. Decoding returns bytes 66 6f 6f 62 61 72.
Common use cases
- Checking an implementation against published Base32 test vectors
- Inspecting bytes from an explicitly Base32-encoded field
- Moving between Base32 and hex without requiring valid text
- Finding malformed padding or non-canonical unused bits
Frequently asked questions
Why does decoding fail when I remove the equals signs?+
The default mode requires canonical RFC 4648 padding. Some protocols intentionally omit it; use the explicit compatibility checkbox for those inputs. Missing padding is not silently accepted by default.
Why are non-zero tail bits rejected?+
The unused bits at the end of a canonical encoding must be zero. Ignoring them would allow different encoded strings to represent the same bytes, which can hide malformed input.
Can I decode binary data that is not UTF-8?+
Yes. The hex result and raw-byte download do not require a text interpretation. Invalid UTF-8 is reported without replacing the underlying bytes.
Does this support authenticator codes or recover passwords?+
No. It only converts the standard Base32 representation. It does not generate time-based codes, recover credentials or verify what a secret is for. Treat authentication secrets as sensitive.
Is lowercase accepted, and are spaces ignored?+
ASCII lowercase is normalised to uppercase. Spaces and line breaks in Base32 are rejected, so accidental formatting does not silently change what was supplied. Hex mode separately allows whitespace between complete bytes.
Standards and limitations
Related tools
Base64 Encoder & Decoder
Encode and decode text or files with Base64, Base64URL, data URI detection, preview and download.
Hex / Binary / Text Converter
Convert UTF-8 text, hex and binary in six directions, validate input and download original bytes.
Hash Generator
Hash text or hex bytes with SHA algorithms, compare an expected digest and download results.
JWT Decoder
Decode JWT claims with exact numbers and expiry times, without verifying the signature.