ToolBark
Converters

Base32 Encode and Decode

Encode and decode text with RFC 4648 Base32 instantly

Mode
RFC 4648
Input: 16 charsOutput: 32 charsOverhead: 100%

About Base32 (RFC 4648)

Base32 encodes binary data using 32 printable ASCII characters (A–Z, 2–7) plus = padding. Each output character represents 5 bits; every 5 input bytes map to 8 Base32 characters. It is case-insensitive and safe for file names, DNS labels, and environments that cannot handle case differences.

About

Base32 is a binary-to-text encoding scheme defined in RFC 4648 that represents data using 32 printable ASCII characters — the letters A through Z and digits 2 through 7. Unlike Base64, Base32 output is case-insensitive and safe for file names, DNS labels, and URLs. Use this free tool to encode plain text to Base32 or decode any Base32 string back to readable text instantly in your browser.

FAQ
What is Base32 encoding?+

Base32 is a binary-to-text encoding defined in RFC 4648 that uses a 32-character alphabet (A–Z and 2–7) to represent arbitrary data. Each Base32 character encodes 5 bits, so every 5 bytes of input become 8 Base32 characters, with = padding to reach a multiple of 8.

How is Base32 different from Base64?+

Base32 uses only uppercase letters and digits 2–7, making it case-insensitive, file-name safe, and suitable for DNS labels and TOTP secrets. Base64 uses 64 characters including + and / which require percent-encoding in URLs. Base32 output is about 60% larger than the input, while Base64 is about 33% larger.

Where is Base32 actually used?+

Base32 is widely used in TOTP two-factor authentication secrets (Google Authenticator, Authy), Onion v3 addresses in Tor, IPFS content identifiers, and some file-system friendly data encoding scenarios where case differences would cause problems.

Is the decoding case-sensitive?+

No. The RFC 4648 Base32 alphabet uses uppercase letters, but decoders are required to accept lowercase input as well. This tool automatically uppercases your input before decoding, so MZXW6=== and mzxw6=== both decode correctly to 'foo'.

Related tools