Base32 Encoder

Runs 100% in your browser · No uploads to any server

Base32 Encoder

Free online base32 encoder and decoder. Convert plain text to Base32, or decode a Base32 string back to readable text — instantly, with no file leaving your device.

Mode: Encode
The file's content loads into the input box below — nothing is uploaded anywhere.
0 characters
Reading File… 0%
Encoded successfully. 0 characters
0 characters

All encoding and decoding runs locally in your browser. No text or files are uploaded, stored, or transmitted to any server.

How the Base32 Encoder Works

Every 8-bit byte of your text is regrouped into 5-bit chunks, and each chunk maps to one letter of the Base32 alphabet. For example, encoding HI:

H = 01001000 I = 01001001
↓ regrouped into four 5-bit chunks (last one padded with zeros) ↓
01001 → J 00001 → B 00100 → E 10000 → Q

Result: HI → JBEQ====

How to Use the Base32 Encoder Tool

1 Select Encode or Decode mode using the toggle button.
2 Enter your text in the input area, or upload a .txt file.
3 The encoded or decoded result appears instantly in the output box.
4 Click Copy result to copy it to your clipboard.
5 Click Download .txt to save the result as a text file.
6 Use Clear All to reset every field and start over.

What Is Base32 Encoding?

Base32 encoding is a binary-to-text scheme, defined in RFC 4648, that represents binary data using a 32-character alphabet: the letters A–Z and the digits 2–7. Because the alphabet is small and case-insensitive, Base32 output is easy to read aloud, type by hand, or use in systems — like DNS records or two-factor authentication secrets — that don't distinguish uppercase from lowercase. Base32 is an encoding, not encryption: it doesn't hide or protect your data, since no key is required to reverse it.

How Does the Base32 Encoder Work?

This base32 encoder reads your text as UTF-8 bytes, regroups every 8 bits into 5-bit chunks, and maps each chunk to a character in the Base32 alphabet. When the input length doesn't divide evenly, the final group is padded with = characters so the output always ends on an 8-character boundary — fully RFC 4648 compliant, and reversible with the matching decoder built into this same tool.

Base32 Encoding vs Base64: Key Differences

Base32Base64
32-character alphabet: A–Z, 2–764-character alphabet: A–Z, a–z, 0–9, +, /
Case-insensitive, human-friendlyCase-sensitive; more compact output
~1.6× size expansion~1.33× size expansion
Common in DNS labels, TOTP secretsCommon in email attachments, data URIs

Common Use Cases for Base32

  • Encoding two-factor authentication (TOTP) secret keys
  • Representing binary identifiers in DNS-safe or filesystem-safe text
  • Generating short, case-insensitive tokens or codes
  • Converting arbitrary binary data to ASCII for logs or transport

Why Use Our Base32 Encoder Tool?

This base32 encoder is fully client-side: your text and files are processed entirely in your browser and never uploaded to a server. It's mobile-friendly, ad-free within the tool itself, supports full UTF-8 text and file uploads, and pairs encoding with a matching, RFC 4648-compliant decoder — so you can convert in either direction from the same page.

How to Convert a String to Base32 Encoding in JavaScript

You can implement Base32 encoding yourself with native JavaScript, using TextEncoder to get UTF-8 bytes and a custom RFC 4648 alphabet lookup — the same approach powering this tool:

function encodeBase32(str) {
  const ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
  const bytes = new TextEncoder().encode(str);
  let bits = '';
  for (const b of bytes) bits += b.toString(2).padStart(8, '0');
  let output = '';
  for (let i = 0; i < bits.length; i += 5) {
    let chunk = bits.substring(i, i + 5).padEnd(5, '0');
    output += ALPHABET[parseInt(chunk, 2)];
  }
  while (output.length % 8 !== 0) output += '=';
  return output;
}

Frequently Asked Questions

Base32 is a base-32 encoding scheme that uses a 32-character alphabet (A–Z and 2–7) to represent binary data as ASCII text. It's defined in RFC 4648 and is commonly used in applications like DNS, two-factor authentication, and cryptographic key representation.

This encoder converts your input text into a Base32-encoded string using the RFC 4648 standard. Every 5 bytes of input become 8 Base32 characters, and padding (=) is added to complete the final group when needed.

You can use this tool directly, or implement it yourself with TextEncoder and a custom Base32 alphabet mapping, as shown in the JavaScript example above. This tool provides both encoding and decoding without any server calls.

No. Base32 uses a 32-character set, while Base64 uses 64 characters. Base32 output is longer than Base64 for the same data, but it's case-insensitive and more human-readable, which makes it a better fit for some use cases like DNS or manually typed codes.

Yes. All encoding and decoding happens entirely in your browser. No text, files, or data are uploaded, stored, or transmitted to any server — your information stays on your device.

Switch this tool to Decode mode, paste your Base32 string into the input box, and the decoded text appears automatically. Uppercase, lowercase, and both padded and unpadded strings are all supported.

This usually means the string contains characters outside A–Z and 2–7, has incorrect padding, or is actually Base64 rather than Base32. The error message under the input box explains exactly what's wrong.

Yes. Text is read as UTF-8 before encoding, so accented characters, emoji, and non-Latin scripts encode and decode correctly.

Encode and decode Base32 instantly — secure, private, mobile-friendly, and 100% client-side. No uploads, no servers, no tracking.

Post a Comment

0 Comments