Base32

Encode text to Base32 or decode Base32 strings back to text — RFC 4648 compliant, pure browser implementation.

Runs locally
Input (text)
Base32 Output

What is Base32?

Base32 encodes binary data using only 32 characters: the 26 uppercase letters A–Z and the digits 2–7. Unlike Base64, it avoids confusable characters (0, 1, 8, 9) and is case-insensitive, making it well-suited for systems where humans might type or read the encoded value — like TOTP secret keys in authenticator apps, IPFS content identifiers, and Crockford-encoded data. The tradeoff is efficiency: every 5 bytes of input produce 8 Base32 characters, a 60% size increase compared to Base64's 33%.

How to use this tool

  1. 1 Choose Encode to convert plain text to Base32, or Decode to reverse a Base32 string.
  2. 2 Toggle "Include padding (=)" to control whether the output is padded to a multiple of 8 characters.
  3. 3 Click the swap button (↔) to copy the output into the input and switch modes — useful for round-trip testing.

Frequently asked questions

Is Base32 the same as Base64?

No. Both encode binary as text but use different character sets and efficiencies. Base64 uses 64 characters (A–Z, a–z, 0–9, +, /) with 33% overhead. Base32 uses only 32 characters with 60% overhead but avoids case sensitivity and ambiguous characters.

What is padding and when do I need it?

Padding = signs are appended to make the output length a multiple of 8. Most decoders accept padded and unpadded input, but some strict implementations require padding. Toggle it based on what your system expects.

What is Base32 used for in real systems?

TOTP/HOTP authenticator secret keys (Google Authenticator, Authy), IPFS and IPNS identifiers, Crockford Base32 in short IDs, and some legacy email encoding schemes.

Is my data sent to a server?

No. The Base32 encode and decode algorithm is implemented entirely in JavaScript running in your browser. Nothing leaves your machine.

What characters are valid in Base32?

RFC 4648 Base32 uses A–Z and 2–7 only (case-insensitive for decoding). The = sign is used for padding. Any other character is invalid and this tool will report an error.