Base32 Encoder / Decoder

Convert text to Base32 encoding and decode Base32 strings back to text. RFC 4648 compliant with optional padding support.

Text Input

Quick Examples:

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

FeatureBase32Base64
Alphabet Size32 characters64 characters
Case SensitiveNo (case-insensitive)Yes (case-sensitive)
Efficiency62.5% (5 bits per char)75% (6 bits per char)
Human ReadableExcellent (no confusing chars)Good (includes +, /, =)
URL SafeYes (always)Needs URL-safe variant
Best Use CasesUser input, URLs, QR codesEmail, 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

🔒 Security Considerations

  • Encoding ≠ Encryption: Base32 is not secure, just encoding
  • Data Visibility: Encoded data is easily readable if decoded
  • No Data Validation: This tool doesn't store or transmit data
  • Client-Side Processing: All encoding happens in your browser

⚡ Best Practices

  • Padding: Include padding for strict RFC 4648 compliance
  • Validation: Always validate Base32 input before decoding
  • Error Handling: Handle invalid characters gracefully
  • Testing: Test with various input lengths and edge cases

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

Related Encoding Tools