Encoding
Base32
Base32 (RFC 4648) encode and decode — text and files, right in your browser.
Base32, like Base64, encodes binary data as text, but uses an alphabet of only 32 characters (A-Z2-7) with no easily confused characters (0/O, 1/I). That's why Base32 shows up more often where a string might be typed by a person, not just copy-pasted.
How to use it
- Encode: enter text or pick a file to get a Base32 string per RFC 4648.
- Decode: paste a Base32 string to get the original text or file back.
- The alphabet is case-insensitive per the spec, though uppercase is the conventional way to write it.
Common uses
- Generating secrets for TOTP/2FA — authenticator apps use Base32 for the secret key specifically.
- Encoding identifiers or tokens a user might need to type by hand without confusing similar-looking characters.
- Working with formats that require Base32 instead of Base64 (some DNS records or case-insensitive file systems, for instance).
Things to keep in mind
Base32 grows data by roughly 60% (versus ~33% for Base64) — a trade-off for broader compatibility with case-insensitive systems and manual entry.
Base32hex is a separate variant of the same standard with a different alphabet (0-9A-V) that preserves sort order — it's incompatible with plain Base32.
Article about this tool: Base32: how it differs from Base64 and when it is more convenient
Frequently asked questions
How is Base32 different from Base64?
Base32 uses a smaller 32-character alphabet (A-Z and 2-7), which makes it case-insensitive and free of visually ambiguous characters. That makes it popular for things like TOTP secret keys, DNS labels, and filenames, at the cost of larger output.
Why is Base32 output so much bigger than Base64?
Base32 encodes 5 bits per character instead of 6, so the output is about 60% larger than the original data — noticeably more overhead than Base64's ~33%.
Does this tool send my data anywhere?
No. All encoding and decoding runs locally in your browser per RFC 4648 — nothing is uploaded to a server.
Why doesn't the Base32 alphabet include the digits 0 and 1?
Those digits are easy to confuse with the letters O and I/l when read or typed manually, so RFC 4648 deliberately excluded them from the alphabet, keeping only unambiguous characters.
How is Base32 different from Base32hex?
Base32hex (from the same RFC 4648) uses the alphabet 0-9A-V instead of A-Z2-7 and preserves string sort order to match the order of the original bytes. The two variants are mutually incompatible.