3️⃣ Base32 Encoder
Encode and decode Base32 (RFC 4648). Uses A-Z and 2-7 to represent binary data in a case-insensitive way.
About Base32
Base32 is a binary-to-text encoding scheme defined in RFC 4648. It represents binary data using a 32-character alphabet consisting of A-Z and 2-7, which is case-insensitive and avoids visually ambiguous characters (0, 1, 8, 9, O, I). Each 5 bytes of input maps to 8 characters of output, with '=' padding to align to a multiple of 8 characters. This tool runs entirely in your browser — nothing is uploaded.
How it works
- Encode — Bytes are grouped into 40-bit (5-byte) blocks, then split into eight 5-bit groups, each mapped to a character in the alphabet A-Z2-7.
- Decode — Each character is converted back to a 5-bit value; the bits are reassembled into bytes. Padding '=' characters are ignored.
- The output is always a multiple of 8 characters; padding '=' fills the remaining positions.
- Encoding operates on raw bytes. UTF-8 multibyte characters produce longer Base32 output.
Use cases
- Encoding TOTP/HOTP secret keys for two-factor authentication apps.
- Transmitting binary data over case-insensitive channels (email, QR codes, DNS).
- Storing keys in a format that's safe to read over the phone or type manually.
- Generating short, human-friendly representations of random bytes.
Frequently asked questions
Why are 0, 1, 8, 9, O, and I missing from the alphabet? They are easily confused with other characters when read or typed. Base32's 32-character alphabet avoids them on purpose.
Why is the encoded output longer than the input? Base32 expands data to roughly 160% of the original size (8 characters per 5 bytes), plus padding.
What are the '=' characters at the end? Padding aligns the output to a multiple of 8 characters. They are required by RFC 4648 but ignored by the decoder.
Does this tool upload my text? No. All encoding and decoding happens locally in your browser.