Base32 encode and decode
Convert text to RFC 4648 Base32 and back, with base32hex and padding options.
Base32 encode and decode
Base32 represents binary data using 32 unambiguous characters — the letters A to Z and the digits 2 to 7 — which makes it robust where Base64 is fragile: it survives case-insensitive systems, avoids characters that clash in URLs and file names, and is easy to read out loud or type by hand. You meet it most often as the secret key behind two-factor authentication apps, in DNS records, and in ni: URIs and file-sharing hashes.
Paste text to encode it, or paste a Base32 string to decode it back — switch direction with the mode selector. The tool follows RFC 4648: input text is converted to UTF-8 bytes first, so accented characters and emoji encode and decode correctly. The alphabet selector offers four alphabets: the standard one, base32hex (0–9, A–V), where the sort order of the encoded form matches the raw bytes, Crockford's Base32 and z-base-32.
Crockford's Base32 uses 0–9 and A–Z without I, L, O and U. It is made for codes that people read aloud and retype: no look-alike characters, hyphens are ignored, and decoding reads I and L as 1 and O as 0. Z-base-32 reorders the alphabet so the characters that are easiest to read and write come first, and it outputs lowercase. Neither defines = padding.
Padding with = signs fills standard and base32hex output to a multiple of eight characters, as the RFC requires. Some systems — TOTP secrets among them — omit it, so you can turn it off with one checkbox. Decoding is forgiving: lowercase input, missing padding, spaces and line breaks are all accepted, and a clear message tells you when the input genuinely isn't Base32.
Everything runs in your browser, so nothing you paste is uploaded — which matters when you are decoding an authenticator secret. Copy the result, download it as a .txt file, or send it back to the input to chain conversions.