{ Base32 Encoder / Decoder }

// transform text with base32 encoding in one click

Encode and decode Base32 strings instantly in your browser. Transform text and binary-safe strings with RFC 4648 Base32 — free, no sign-up required.

0 chars

Ready to encode

Paste input and click Encode

HOW TO USE

  1. 01
    Paste your text

    Enter the string you want to encode or decode in the left panel.

  2. 02
    Choose mode & alphabet

    Select Encode or Decode, then pick Standard (RFC 4648) or Extended Hex alphabet.

  3. 03
    Copy the result

    Click Convert and copy the output with the ⎘ Copy All button.

FEATURES

RFC 4648 Standard & Hex Instant No upload Padding aware Free

USE CASES

  • 🔧 Encoding binary-safe tokens for URLs
  • 🔧 Generating TOTP / 2FA secret keys
  • 🔧 Data serialization in constrained environments
  • 🔧 Debugging Base32-encoded API payloads

WHAT IS THIS?

Base32 is a binary-to-text encoding scheme that represents data using 32 printable ASCII characters. Unlike Base64, it avoids mixed case and special characters, making it ideal for case-insensitive systems, human transcription, and URL-safe contexts. It's widely used in TOTP (two-factor authentication), DNS labels, and data identifiers.

RELATED TOOLS

FREQUENTLY ASKED QUESTIONS

What is Base32 encoding?

Base32 is a binary-to-text encoding that maps binary data to a 32-character alphabet (A–Z and 2–7 in RFC 4648 standard). It's more compact than hexadecimal and avoids confusing characters like 0/O and 1/I/l, making it ideal for human-readable identifiers and case-insensitive systems.

What's the difference between Standard and Extended Hex (Base32hex)?

Standard Base32 (RFC 4648) uses the alphabet A–Z and 2–7. Extended Hex (Base32hex) uses 0–9 and A–V — chosen so that encoded values sort lexicographically in the same order as the original data. Base32hex is defined in RFC 4648 §7 and is preferred in DNS-related contexts.

Is Base32 the same as Base64?

No. Base64 uses a 64-character alphabet (A–Z, a–z, 0–9, +, /) and produces ~33% overhead. Base32 uses only 32 uppercase chars and produces ~60% overhead — it's less efficient but safer for case-insensitive channels and human transcription. Both are binary-to-text encodings, not encryption.

Why does my Base32 output end with = signs?

The = characters are padding. Because each Base32 character encodes 5 bits, groups of 8 characters represent 40 bits (5 bytes). If input length isn't a multiple of 5 bytes, padding fills the remaining space to make the output length a multiple of 8. This is per RFC 4648 spec.

Is Base32 encoding secure / is it encryption?

No — Base32 is an encoding scheme, not encryption. Anyone can decode it instantly. Never use Base32 alone to protect sensitive data. For security, use proper encryption (AES, RSA) or hashing (SHA-256). Base32 is only useful for safe transport of binary data in text-limited channels.

Where is Base32 actually used in practice?

Common real-world uses include: TOTP (Time-based One-Time Password) secret keys in apps like Google Authenticator, Bitcoin / cryptocurrency addresses (Bech32 variant), DNS labels, Crockford Base32 for short numeric IDs, and some email / data transfer protocols that can't handle arbitrary binary or case-sensitive text.

Can I encode binary files with this tool?

This tool is optimized for plain text. For raw binary files, the input must be text-representable. If you need to encode a binary file (image, PDF, etc.), consider converting it to Base64 first using our Base64 Encode/Decode tool, which is specifically designed for file encoding workflows.

Does this tool store or log my data?

No. All processing happens client-side in your browser (via JavaScript) or on the server with no logging. Your input is never stored, tracked, or shared. The tool is fully stateless — refreshing the page clears everything.

What Is Base32 Encoding — And When Should You Use It?

Base32 is a binary-to-text encoding scheme standardized in RFC 4648. It converts arbitrary binary data into a string of printable ASCII characters drawn from a 32-symbol alphabet. The standard alphabet uses the uppercase letters A through Z and the digits 2 through 7, deliberately skipping characters that are visually ambiguous (0/O, 1/I/l) to make encoded strings safe for human transcription.

Every Base32 character encodes exactly 5 bits of binary data. Groups of 8 characters encode 40 bits (5 bytes) of input. When the input length is not a multiple of 5 bytes, = padding characters fill the remaining space. This predictable structure makes Base32 particularly easy to validate and parse programmatically.

💡 Looking for premium web development assets? MonsterONE offers unlimited downloads of templates, UI kits, and developer assets — worth checking out.

Base32 vs Base64: Which Should You Choose?

The most common comparison is Base32 versus Base64. Both solve the same fundamental problem — encoding binary data as printable text — but they make different trade-offs:

The practical rule: use Base64 when space matters and you control the channel. Use Base32 when you need human readability, case-insensitivity, or compatibility with legacy systems.

Standard Base32 vs Extended Hex (Base32hex)

RFC 4648 defines two Base32 alphabets. Standard Base32 uses A–Z and 2–7. Extended Hex Base32 (Base32hex) uses 0–9 and A–V. The Extended Hex variant is specifically designed so that the sort order of encoded values matches the sort order of the original binary data — a property called lexicographic ordering preservation. This makes Base32hex valuable in applications like DNS Next Secure (NSEC3) records in DNSSEC, where sort order of hashed zone names matters.

How TOTP and 2FA Use Base32

One of the most common everyday uses of Base32 is in Time-based One-Time Passwords (TOTP) — the six-digit codes generated by apps like Google Authenticator, Authy, and Microsoft Authenticator. When you scan a QR code to set up 2FA, the underlying secret key is typically a Base32-encoded binary string. The authenticator app decodes it to recover the raw key bytes and then uses them as input to the HMAC-SHA1 algorithm specified in RFC 6238.

Base32 was chosen for this use case precisely because the secret can be printed on paper, spoken over the phone, or typed manually without ambiguity. A user can look at a Base32-encoded TOTP secret and confidently distinguish every character — no confusable pairs.

Crockford Base32: A Practical Variant

Doug Crockford (creator of JSON) proposed a variant of Base32 for use in human-friendly identifiers. Crockford Base32 uses a 32-character alphabet that excludes I, L, O, and U to avoid ambiguity and profanity. It also specifies a checksum algorithm. Crockford Base32 is used in systems like ULID (Universally Unique Lexicographically Sortable Identifier), which generates 26-character identifiers that are both sortable and readable.

Common Mistakes When Decoding Base32

When decoding Base32 strings, several common errors arise:

Base32 in Modern Development Contexts

Beyond TOTP, Base32 appears in several contemporary development contexts. Bitcoin's Bech32 address format (SegWit addresses starting with bc1) uses a 32-character alphabet with error-detection properties. Tor hidden service addresses (.onion domains) encode the service's public key in Base32. Some URL shorteners and ID generation systems use Base32 variants to produce compact, copy-paste-friendly identifiers that work in URLs without percent-encoding.

Performance Considerations

Base32 encoding and decoding are computationally trivial — even large strings process in milliseconds. The primary cost consideration is the 60% size increase, which matters when encoding large binary blobs. For data over a few kilobytes that will be stored or transmitted frequently, Base64 is more practical. For short identifiers, auth tokens, and human-facing strings, Base32's readability benefits far outweigh the modest size penalty.

Using This Tool

Our Base32 Encoder / Decoder runs entirely in your browser. Select Encode or Decode mode, choose your alphabet (Standard RFC 4648 or Extended Hex), paste your input, and click Convert. The output appears instantly with character count statistics. Use the Swap button to quickly flip encoded output back into the input field for round-trip testing. All processing is local — your data never leaves your browser.