Base32 Encoder / Decoder
Encode text to Base32 (RFC 4648) or decode Base32 strings back to text.
About This Tool
The Base32 Encoder / Decoder implements the RFC 4648 Base32 alphabet β uppercase letters AβZ and digits 2β7, padded to a multiple of 8 characters with =. Base32 produces output that is case-insensitive and avoids visually ambiguous characters like 0, 1, O, and I, making it popular in systems where readability and manual entry matter (TOTP secret keys, file system names, DNS labels).
In Text β Base32 mode the input text is first encoded to UTF-8 bytes, then encoded to Base32. In Base32 β Text mode the Base32 string is decoded to bytes and then decoded from UTF-8. Padding characters are optional for decoding. All processing is local β nothing is sent to a server.
How to Use
- Select Text β Base32 to encode plain text, or Base32 β Text to decode.
- Paste your input or click Sample to load an example.
- Click Convert.
- Click Copy to copy the result to your clipboard.
Use Cases
Two-factor authentication apps use Base32 to represent TOTP secret keys because the alphabet is easy to read and type on mobile devices. DNS-based challenge records sometimes encode binary data as Base32 to avoid case sensitivity issues. Some file systems use Base32-encoded hashes as directory names to stay within naming constraints.
FAQ
- What is the difference between Base32 and Base64? β Base32 uses a 32-character alphabet (AβZ, 2β7), producing ~60% overhead vs ~33% for Base64. Base32 is case-insensitive and avoids characters that look alike, making it better for human-readable contexts.
- Are padding characters required? β Not for decoding. This tool strips trailing = before parsing, so padded and unpadded input both work.
- Is there a size limit? β No hard limit. The encoding runs entirely in the browser using JavaScript typed arrays.
- What if I get an "invalid characters" error? β Base32 only allows AβZ and 2β7. Characters like 0, 1, 8, 9, and all lowercase letters (after normalization) are not valid Base32.