Cryptography & Protocols
6 min read
September 7, 2026
Base32 Encoding Demystified: Why Authenticator Apps Use RFC 4648 Base32 Over Base64
Sarah Chen
Lead Cryptographer • 2FASafe Security Team
The RFC 4648 Base32 Alphabet
When you configure Two-Factor Authentication on platforms like Google, GitHub, or AWS, you are provided with a secret key such as JBSWY3DPEHPK3PXP. Notice that this string never contains the numbers 0, 1, 8, or 9. This is because authenticator setups strictly employ the RFC 4648 Base32 alphabet.
Why Base32 Instead of Base64 or Hexadecimal?
- Elimination of Visual Ambiguity: In human readability, numeral
0is easily confused with letterO, and numeral1is confused with lowercaselor uppercaseI. Base32 completely omits0,1,8, and9to eliminate manual transcription errors. - Case-Insensitivity: Unlike Base64, which requires uppercase (A-Z), lowercase (a-z), and symbols (+, /), Base32 is strictly case-insensitive. Users can type keys in lowercase or uppercase without causing decoding errors.
- Uniform 5-Bit Grouping: Base32 cleanly encodes 5 bits of binary data per character ($2^5 = 32$), providing optimal compression while maintaining human readability.
Protect Your Accounts Today
Generate and test real-time 2FA codes with 100% client-side zero-knowledge security on 2FASafe.