32 symbols · RFC 4648 · ~60% overhead

Base32 converter

RFC 4648 Base32 with alphabet A–Z 2–7. No lowercase, no ambiguous 0/1. Common in TOTP / 2FA secret keys and DNS-safe identifiers. Type below to see which symbols your data lights up.

0 chars
encodes to
or decode
0 chars

How to use this tool

  1. Type or paste text into the Text → Base32 box — the RFC 4648 encoding appears instantly in Base32 output.
  2. Click Copy result to copy the encoded string (the same format used by TOTP / 2FA apps).
  3. To go the other way, paste a Base32 string into Base32 → Text and the decoded text appears below.
  4. The symbol ribbon lights up to show which of the 32 characters your data actually touches.
  5. Use Clear any time to reset a box and start over.

Why this tool is helpful

TOTP / 2FA secrets

Authenticator apps store their secret keys in Base32. Encode or decode one to inspect the exact bytes behind the codes.

DNS-safe identifiers

The uppercase A–Z 2–7 alphabet survives systems that dislike lowercase or special symbols.

Error-resistant transcription

No 0, 1, or O lookalikes make it safer to read aloud over the phone.

Case-insensitive by design

Output is uppercase only, so it round-trips cleanly through case-folding systems.

Portable text form of binary

Turns arbitrary bytes into a clean letters-and-digits string you can email, paste, or print.

Stay private

Everything runs in your browser. Nothing is uploaded, logged, or sent to a server.

FAQ

What alphabet does Base32 use?

The RFC 4648 alphabet: A–Z and 2–7 (32 characters total), uppercase only.

Why is there no 0 or 1?

To avoid confusion with the letters O, I, and L when transcribing by hand or voice.

What do the = padding characters mean?

They pad the output to a multiple of 8 characters so that groups of 5 input bytes map cleanly onto 8 output characters.

Is Base32 the same as Base64?

No. Base64 has a larger alphabet so its output is shorter, but Base32 is case-insensitive and friendlier for humans.

Is it case-sensitive?

No. Input is uppercased automatically and only A–Z 2–7 are used.

Does any of my data leave my browser?

Never. All conversion happens locally in JavaScript and nothing is sent anywhere.