Base32 + Base58 encoder/decoder — RFC 4648 base32 (Crockford variant too), Bitcoin base58, Solana base58, hex/text/file input.
- Runs locally
- Category Encoding & Crypto
- Best for Checking small payloads, tokens, hashes, and encoded values quickly.
Alphabet: Base32 (RFC 4648)
Byte-level guide
Hex mode and variant map
Hex mode keeps the exact bytes
Use Hex when you already have bytes from a hash, token, public key, CID, or binary fixture. The parser strips 0x, whitespace, hyphens, and colons, then requires complete byte pairs so 48656c6c6f and 48:65:6c:6c:6f encode the same payload.
- Text mode first turns characters into UTF-8 bytes.
- Hex mode treats every two hex digits as one byte.
- File mode reads the dropped file bytes without uploading them.
Choosing between Base32, Base58, Base85, Base64, and hex?
Read the companion article for measured overhead, alphabet trade-offs, and examples for QR codes, wallet keys, TOTP secrets, and binary streams.
| Variant | Alphabet | Padding | Best fit |
|---|---|---|---|
| Base32 (RFC 4648) | A-Z 2-7 | = | TOTP / 2FA secrets, uppercase-only transport, RFC 4648 interoperability. |
| Base32 (Crockford) | 0-9 A-H J-K M-N P-T V-Z | none | Human-entered support codes, coupon codes, and IDs that may be read aloud. |
| Base32hex (RFC 4648 §7) | 0-9 A-V | = | Sortable byte strings such as ULID-like IDs and lexicographic index keys. |
| Base58 (Bitcoin) | 1-9 A-H J-N P-Z a-k m-z | none | Bitcoin/Solana-style public identifiers, IPFS CIDv0, compact QR payloads. |
| Base58 (Ripple/XRP) | Ripple XRP ordering | none | XRP addresses and systems that explicitly require the Ripple alphabet. |
What this tool does
Five encodings in one tool: Base32 RFC 4648 (the standard A-Z 2-7 alphabet with `=` padding), Base32 Crockford (the human-friendly variant that drops I, L, O, U to avoid look-alike confusion and is case-insensitive), Base32hex (RFC 4648 §7 — 0-9 A-V, the variant that preserves sort order), Base58 Bitcoin (the alphabet that strips 0, O, I and l for the same reason and that every Bitcoin address you've ever seen uses), and Base58 Ripple (the XRP variant with a deliberately different letter ordering). Paste plain text, paste raw hex (`48656c6c6f`, no `0x` prefix needed), or drop a binary file. Encode to any one of the five — or flip on "Compare all 5" and see the same bytes rendered in every alphabet at once, with character-length and overhead-ratio next to each so you can pick the right one for your URL, address, or QR. Decode goes the other way: paste a Bitcoin pubkey hash and get back the hex. The five algorithms are implemented from scratch — base32 is a 5-bit packer, base58 uses BigInt long-division (which is why your Bitcoin address keeps its leading `1` characters: those encode the leading zero bytes that division alone would drop). Everything runs in your browser; nothing is uploaded, nothing is logged.
Tool details
- Input
- Files + Text + Numbers
- The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
- Output
- Live result + Copy + Download
- The result area focuses on usable output, with copy, download, or preview actions when supported.
- Privacy
- Browser-side processing
- The main tool logic does not call an external API, so inputs normally stay in the current tab.
- Save / share
- Shareable URL state
- Key settings are encoded in the URL so another person can reopen the same setup.
- Performance budget
- Initial JS <= 25 KB
- No WASM budget is declared, keeping the tool quick to open on mobile.
- Best fit
- Encoding & Crypto · Developer
- Category and role tags drive related tools, internal links, and quick fit checks.
How to use
-
1. Input
Paste or drop your content into the tool panel.
-
2. Process
Click the button. All processing is local in your browser.
-
3. Copy / Download
Copy the result or download to disk in one click.
How Base32 / Base58 Encoder & Decoder fits into your work
Use it for quick browser-side encoding, decoding, hashing, token checks, and share-safe transformations.
Encoding jobs
- Checking small payloads, tokens, hashes, and encoded values quickly.
- Preparing values for APIs, URLs, docs, or support tickets.
- Avoiding account-based tools when the input might be sensitive.
Encoding checks
- Do not paste live secrets unless you are comfortable with local browser handling.
- Confirm whether the operation is reversible before sharing the result.
- For hashes, compare the exact algorithm and casing expected by the receiver.
Good next steps
These links move the current task into a more complete workflow.
- 1 Base85 / Ascii85 Encoder & Decoder Encode text to Ascii85 or Z85 and decode it back, UTF-8 safe, with z-compression and <~ ~> handling, all in your browser Open
- 2 Base64 Encoder & Decoder Encode or decode Base64 — text, files, and Data URLs. Runs entirely in your browser. Open
- 3 Base64 to Hex Converter Base64 ⇄ hexadecimal at the byte level, no text encoding in between — standard or URL-safe, your separator and case, runs in your browser Open
Real-world use cases
Decode a Bitcoin address back to its underlying hash
You're auditing a wallet integration and want to confirm that the address `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa` (the legendary Satoshi address) decodes to the expected RIPEMD-160 hash. Paste it in, switch to Decode + base58-bitcoin, set output to hex — you get `0062e907b15cbf27d5425399ebf6f0fb50ebb88f1886ca9a4`. The first byte `00` is the mainnet P2PKH version; the last 4 bytes `86ca9a4` should be SHA256(SHA256(0062...88f1))[:4] — which you can verify with the SHA hash tool. Zero server round-trips, zero risk of pasting private keys anywhere.
Generate a TOTP secret you can read out loud
You're setting up 2FA for a CLI tool and want a secret a junior engineer can type from a sticky note. Generate 16 random bytes (use the random number tool or `openssl rand -hex 16`), paste the hex in here, switch to Base32 RFC 4648 — you get a string like `JBSWY3DPEHPK3PXP...`. That's what you put in `otpauth://` URIs, that's what Authy and Google Authenticator paste-import. Now copy the same hex bytes and re-encode as Crockford instead — same secret, no I/L/O/U, way easier to dictate over phone.
Verify Solana public keys are valid before saving to your DB
A user pastes what they claim is their Solana wallet address into your form. Decode it as base58-bitcoin, check that the result is exactly 32 bytes. If it decodes and the length is right, it's a structurally valid Ed25519 pubkey (validating the curve point is a separate step you'd do server-side). If it throws "invalid char" — they pasted something else, maybe a Ripple address that happens to look similar. Catches a class of "user typed it wrong" bugs before they hit your database.
Compare overhead before picking an encoding for QR codes
You're generating QR codes for 32-byte session tokens and QR density matters. Drop in 32 random bytes via the hex input, turn on "Compare all 5". You'll see hex = 64 chars, Base32 = 52, Base58 = 44, Base64 = ~43. For QR alphanumeric mode (limited to A-Z 0-9 + 9 punctuation), Base32 is the one you want — it fits the restricted alphabet and stays dense. For QR byte mode, Base58 wins on size by a few characters. The compare panel makes the trade-off visible instead of guessing.
Round-trip an IPFS CIDv0 hash for debugging
IPFS CIDv0 hashes (the `Qm...` ones) are SHA-256 hashes wrapped in a 2-byte multihash header and then base58-bitcoin encoded. Paste a CID, decode, look at the hex: the first two bytes should be `1220` (multihash code 0x12 = sha2-256, length 0x20 = 32 bytes), followed by the actual 32-byte digest. Useful when an IPFS pinning service rejects your CID and you want to know if it's malformed at the encoding layer or actually unreachable.
Bulk-decode 200 TOTP backup codes from a YAML dump
Your password manager exported 200 TOTP entries, each with a base32 secret. Turn on Batch mode, paste one secret per line, get one decoded hex result per line back out. You can now grep, dedupe, or compare across the whole set without writing a 5-line Python script.
Common pitfalls
Confusing Bitcoin and Ripple Base58 alphabets. They use the same algorithm but completely different letter orderings — a Bitcoin address decoded with the Ripple alphabet does not error out; it silently produces garbage bytes. Always know which chain you're working with.
Forgetting that Base58 preserves leading zero bytes as leading `1` (Bitcoin) or `r` (Ripple). If you write a base58 round-trip that strips them on either side, your Bitcoin addresses will silently shorten and become wrong.
Pasting hex with a `0x` prefix or spaces into the Hex input. The tool strips `0x`, whitespace, hyphens, and colons automatically, but a stray non-hex char (like a smart quote pasted from Slack) will throw — clean the input if decode fails.
Assuming Crockford Base32 is interoperable with RFC 4648 standard. They are NOT — the alphabets are completely different. A TOTP app expecting RFC 4648 will fail on a Crockford-encoded secret.
Treating Base58 as "base64 minus a few characters". It's not — Base58 uses BigInt long-division while Base64 is fixed-width 6-bit packing. They have different sizes, different leading-zero handling, and different alphabets.
Privacy
Everything — the Base32 5-bit packer, the Base58 BigInt long-division, the hex parser, the UTF-8 codec, the file reader — runs in your browser as plain JavaScript. Inputs you paste, files you drop, encoded outputs: nothing leaves the tab, nothing is logged, nothing is analyzed. The shareable URL state stores only your text input and encoding choice (so "share link" works) — it never includes file bytes or anything that looks like a private key. Safe to use on an air-gapped laptop after first page load.
FAQ
Tool combos
Folks in your role tend to reach for these alongside this tool.
- 555 Timer Calculator Astable f = 1.44/((R1+2R2)C) + monostable t = 1.1RC — pick R1, R2, C in Ω/kΩ and µF/nF, read frequency, duty cycle and pulse width — browser-only
- Add Line Numbers Number every line of pasted text — set start, step and separator, zero-pad to align, skip blanks, or strip numbers back off — browser-only
- Age Difference Calculator The exact gap between two birthdays — years/months/days, percentage, and the date one person is twice the other's age — browser-only
- AI Eval Planner Generate eval cases, pass criteria, and edge cases from an AI feature, risks, and user path.