Base32 Encode / Decode

Encode text or a file to base32, or decode a base32 string back to text or a file. Uses the RFC 4648 standard alphabet (A–Z, 2–7) with =-padding to a multiple of 8 characters. UTF-8 safe, whitespace-tolerant on decode. Everything happens in your browser — nothing is uploaded, no sign-in, no tracking.

Choose encode or decode

Tip: in decode mode, whitespace inside the base32 is ignored, so line-wrapped values from configuration files or email work without cleanup. Lowercase and uppercase are both accepted.

Example inputs — click any chip to load it into the input box
How base32 works
  • Base32 encodes 5 bits of data per output character, using the alphabet A–Z and 2–7. 5 input bytes produce 8 base32 characters; 8 input bytes produce 13 base32 characters (with one = of padding).
  • It’s case-insensitive and uses no symbol that a human can misread (0 / O and 1 / l / I are deliberately avoided), which is why it shows up in TOTP secrets, Kubernetes resource names, and AWS resource IDs.
  • The output on this page is uppercase, padded with = to a multiple of 8 characters, and matches the test vectors in RFC 4648 §10. The decoder accepts lowercase input and ignores whitespace, so you can paste values straight out of a config file or a chat message.
  • Errors are reported with the position in the (whitespace-stripped) input: out-of-alphabet character, wrong total length, padding in the wrong place, or non-zero trailing bits. The encoder runs entirely on a small client-side script — nothing is uploaded.