Free · Private · Client-side
Base32 Encoder / Decoder
Convert text to Base32 encoding and decode Base32 strings back to text — instantly, entirely in your browser. RFC 4648 compliant with optional padding support.
Generated values never leave this device.Examples:
Base32 is an encoding, not encryption — anyone can decode it. It maps every 5 bits to one of 32 characters (A–Z, 2–7), so output is ~60% longer than the input.
Base32 output
Base32 encoded text will appear here...About Base32 Encoding
Base32 is a binary-to-text encoding scheme that represents binary data using 32 ASCII characters (A-Z and 2-7). It's more human-readable than Base64 and case-insensitive, making it ideal for scenarios where users need to manually enter encoded data.
Key Features:
- • Uses only uppercase letters and numbers 2-7
- • Case-insensitive (easier to read/type)
- • No confusing characters (0, 1, 8, 9)
- • RFC 4648 standard compliance
- • Optional padding with '=' characters
Base32 Alphabet
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
2
3
4
5
6
7
32 characters: A-Z (26 letters) + 2,3,4,5,6,7 (6 numbers)
Base32 vs Base64 Comparison
| Feature | Base32 | Base64 |
|---|---|---|
| Alphabet Size | 32 characters | 64 characters |
| Case Sensitive | No (case-insensitive) | Yes (case-sensitive) |
| Efficiency | 62.5% (5 bits per char) | 75% (6 bits per char) |
| Human Readable | Excellent (no confusing chars) | Good (includes +, /, =) |
| URL Safe | Yes (always) | Needs URL-safe variant |
| Best Use Cases | User input, URLs, QR codes | Email, web protocols, files |
Common Use Cases
✓ When to Use Base32
- Two-Factor Authentication (2FA): TOTP secrets for Google Authenticator
- User-Entered Codes: License keys, activation codes
- QR Codes: Better error correction with fewer characters
- URL Parameters: Always URL-safe without escaping
- Case-Insensitive Systems: When case doesn't matter
✗ When NOT to Use Base32
- Storage Efficiency Critical: Base64 is 20% more efficient
- Email Protocols: Base64 is the standard
- Binary File Encoding: Base64 handles binary data better
- JSON/XML Data: Base64 is more widely supported
Security and best practices
- Encoding ≠ Encryption: Base32 is not secure, just encoding
- Data Visibility: Encoded data is easily readable if decoded
- Client-Side Processing: All encoding happens in your browser — nothing is stored or transmitted
- Padding: Include padding for strict RFC 4648 compliance
- Validation: Always validate Base32 input before decoding
- Error Handling: Handle invalid characters gracefully
Base32 in Practice - Real World Examples
DNS and Networking
DNS TXT Records:
google-site-verification=MFXQY2LNORSW...
Base32 ensures case-insensitive DNS compatibility
Tor Hidden Services:
facebookcorewwwi.onion
Onion addresses use Base32 for public key encoding
Domain Fronting:
cdn-GEZDGNBVGY3TQ.example.com
Subdomain generation for load balancing
Authentication Systems
Google Authenticator Seeds:
JBSWY3DPEHPK3PXP
TOTP secret keys use Base32 for manual entry
Recovery Codes:
ABC23-DEF45-GHI67
Backup codes avoid confusing characters
OAuth State Parameters:
?state=MFRGG2LTMVQWG
URL-safe random state for CSRF protection
File Systems
Git Alternative Refs:
refs/heads/MFRGG2LTMVQWG
Case-insensitive filesystem compatibility
Backup Filenames:
backup-2024-GEZDGNBVGY3TQ.tar.gz
Unique filenames that work across platforms
Temporary Files:
/tmp/cache-NFXGO2LJNN2WG.tmp
Collision-resistant temporary file naming
QR Codes and Mobile
Wi-Fi QR Codes:
WIFI:S:Network;T:WPA;P:ABC234DEF;
Alphanumeric mode improves QR efficiency
App Activation Codes:
ABCD-EFGH-2345-6789
User-friendly codes for mobile app activation
Contact Sharing:
vCard with Base32 IDs
QR-friendly contact information encoding
Implementation Tips
For Developers
- • Use RFC 4648 compliant libraries
- • Test case-insensitive decoding
- • Handle padding edge cases
- • Validate input character set
- • Consider chunking for long data
For Users
- • Avoid similar-looking characters (0,O)
- • Case doesn't matter: "abc" = "ABC"
- • Padding = signs may be optional
- • Great for typing by hand
- • Works well in QR codes
Common Pitfalls
- • Mixing Base32 with Base64
- • Forgetting to handle padding
- • Assuming case sensitivity
- • Not validating alphabet
- • Length calculation errors