All tools

Base32 Encode / Decode

Encode / Decode

Encode and decode Base32 with Standard, Extended Hex, Crockford, and z-base-32 alphabets

Paste text to encode it into Base32, or paste a Base32 string to decode it back, with a choice of alphabet: standard RFC 4648, Extended Hex, Crockford (which drops visually ambiguous letters like I, L, O, and U for human-typed IDs), and z-base-32, the variant common in distributed systems. This is the encoding you'll run into for DNS labels, TOTP secret keys, and filesystem-safe identifiers where Base64's mixed case or special characters would cause problems. Decoding requires knowing which alphabet was used to encode, since the same string decodes differently depending on which one you pick, and an invalid character for the selected alphabet will fail rather than silently produce garbage. Everything runs locally in the browser.

base32encodedecodecrockfordrfc4648

How to use Base32 Encode / Decode

  • 1.Paste text and encode it with the Standard alphabet to generate a Base32 string for use in DNS labels, TOTP secrets, or filenames that need to avoid special characters.
  • 2.Switch to Crockford alphabet when decoding IDs or tokens meant to be human-typable, since it excludes visually ambiguous characters like I, L, O, and U.
  • 3.Decode a z-base-32 string from a distributed system or Tahoe-LAFS style identifier back into its original bytes.

Frequently asked questions

What's the difference between the alphabets?
Standard is the RFC 4648 default, Extended Hex sorts consistently with hex ordering (used in some filesystems), Crockford is designed for human readability by avoiding ambiguous characters, and z-base-32 optimizes for typing and speech.
Does this run locally or hit a server?
All encoding and decoding happens in your browser — no data is sent anywhere.
Why is my Base32 output longer than Base64 for the same input?
Base32 encodes 5 bits per character instead of Base64's 6, so it's about 20% less space-efficient — the tradeoff is a smaller, case-insensitive alphabet that's easier to read aloud or type manually.
Can I decode a string encoded with a different alphabet than the one I selected?
No — you must pick the matching alphabet, since the character sets overlap but map to different values (e.g. Crockford treats certain letters as digit substitutes).

Use via API, SDK, or MCP

Installnpm install @utilix-tech/sdk
Usageimport { encoding } from '@utilix-tech/sdk'
const bytes = new TextEncoder().encode('Hello')
const encoded = encoding.base32EncodeBytes(bytes)
console.log(encoded) // JBSWY3DP

Runs locally · no API key · no rate limits · Node.js SDK docs →