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.