> encode | decode | safe <
// Base32 encoding for human-readable, unambiguous data representation
Easy to Use
Simple interface for instant Base32 encoding and decoding. No technical knowledge required.
Local Processing
All conversions happen in your browser. Your data never leaves your device.
Human-Friendly
Uses only uppercase letters and numbers, avoiding confusing characters like 0, 1, O, I.
>> technical info
How Base32 Works:
Base32 uses 32 characters (A-Z, 2-7) to represent binary data. It's designed to be human-readable and avoid ambiguous characters.
Example:
"Hello" → JBSWY3DPEBLW64TMMQ======
Why Use Base32:
- >Human-readable output
- >No ambiguous characters (0,1,O,I)
- >Case-insensitive
- >Good for user input scenarios
- >Shorter than Base16 but longer than Base64
>> frequently asked questions
What is Base32 encoding?
Base32 is a base-32 numeral system that uses 32 symbols (A-Z, 2-7) to represent binary data in a human-readable format, avoiding ambiguous characters.
When should I use Base32?
Base32 is ideal when you need human-readable encoding that avoids confusing characters. It's commonly used for authentication tokens, API keys, and user-facing identifiers.
Why doesn't Base32 use all numbers and letters?
Base32 excludes 0, 1, O, and I to avoid confusion between similar-looking characters. This makes it more reliable for manual entry and reading.
What do the equal signs mean?
The equal signs (=) are padding characters used to make the encoded string length a multiple of 8 characters, ensuring proper decoding.
How do I decode Base32 online?
Paste the Base32 string into the input box and click [DECODE]. The tool accepts both RFC 4648 standard Base32 (A-Z 2-7) and case-insensitive input (abc is normalized to ABC). Trailing = padding is optional — the decoder auto-pads the input to the correct length. Everything runs in your browser; the Base32 string never leaves your device.
How do I encode text to Base32?
Type or paste the text into the input and press [ENCODE]. The output uses the 32-character alphabet A-Z 2-7, producing a string roughly 1.6× the length of the input (8 bits of data per 1.6 characters = 5 bits per character). Binary input is encoded byte-for-byte.
What is Base32 vs Base64 vs Base16?
All three are binary-to-text encodings from RFC 4648, differing only in how many bits each output character carries:
• Base16 (Hex): 4 bits/char, alphabet 0-9 A-F, output 2× input size.
• Base32: 5 bits/char, alphabet A-Z 2-7, output ≈1.6× input size, human-readable and case-insensitive.
• Base64: 6 bits/char, alphabet A-Z a-z 0-9 + /, output ≈1.33× input size, the most compact of the three.
Pick Base32 when humans may retype the string (TOTP secrets, Tor hostnames), Base64 when bandwidth matters (email, JSON), and Base16 when debugging binary byte-by-byte.
How do I encode/decode Base32 in code?
Python: base64.b32encode(b'data') / base64.b32decode(s).
Node.js: no built-in; use npm i base32 or hi-base32. Example: require('hi-base32').encode('Hello').
Go: base32.StdEncoding.EncodeToString(b) / base32.StdEncoding.DecodeString(s).
Java: new Base32().encodeToString(bytes) (Apache Commons Codec).
Shell: echo 'Hello' | base32 (GNU coreutils) / base32 -d.
What is Crockford Base32 and how is it different from RFC 4648?
Crockford Base32 is an alternative alphabet designed by Douglas Crockford to be more human-friendly: it uses 0-9 A-Z but excludes I L O U to avoid confusion with 1, 0, and vulgar words. Decoding is lenient: I / i / L / l map to 1, and O / o maps to 0. It also supports an optional checksum digit. Use our dedicated /crockford32/ tool for that variant. RFC 4648 Base32 is what you need for TOTP, DNS, and most protocols.
Where is Base32 actually used in the real world?
Common use cases:
• TOTP / 2FA secrets — Google Authenticator, Authy, 1Password all store TOTP shared keys as Base32 (RFC 4648).
• Tor v3 onion addresses — 56-character Base32 of a public key.
• DNS — NSEC3 records use Base32 hex (custom alphabet) to hide zone contents.
• Apache Cassandra UUIDs as short keys.
• ULID and Stripe-style IDs often use Crockford Base32.
• Amazon S3 object keys in some legacy tools.
Is Base32 decoding case-sensitive?
RFC 4648 Base32 is explicitly case-insensitive: uppercase and lowercase letters must map to the same value. Our decoder normalizes input to uppercase before decoding, so jbswy3dpebLw64tMmq and JBSWY3DPEBLW64TMMQ yield the same result. This is different from Base64, which is case-sensitive.