Base32, Base58 and Ascii85 Converter
Encode text or raw bytes as Base32, Base58, Ascii85 or Z85, or decode any of them back, with each encoding's own alphabet and padding rules. The working table shows how the first bytes turn into characters. Base64 is covered by the Text Encoder & Decoder. Runs in your browser; nothing is uploaded.
Letters A–Z and digits 2–7, five bits per character, padded with = to a multiple of eight characters. Case does not matter when decoding.
How it was worked out
The bytes are written as bits and cut into groups of five. Each group is a number from 0 to 31 and picks one character.
| Bits | Value | Character |
|---|---|---|
| 01001 | 9 | J |
| 00001 | 1 | B |
| 10010 | 18 | S |
| 10110 | 22 | W |
| 11000 | 24 | Y |
| 11011 | 27 | 3 |
| 00011 | 3 | D |
| 01111 | 15 | P |
| 00101 | 5 | F |
| 10000 | 16 | Q |
| 10000 | 16 | Q |
| 00101 | 5 | F |
| 01110 | 14 | O |
| 11011 | 27 | 3 |
| 11011 | 27 | 3 |
| 10010 | 18 | S |
Showing the first 16 rows.
How to Use the Base Encoding Converter
- 1. Pick an encoding. Base32, Base32 with the extended hex alphabet, Base58 with the Bitcoin alphabet, Ascii85 as used by Adobe, or Z85. A note under the menu describes the one you chose.
- 2. Say what the data is. Text is read as UTF-8 bytes. Hex bytes lets you encode arbitrary binary, such as a key, by typing it as pairs like
86 4f d2 6f. - 3. Encode or decode. Encoding gives text made of the encoding's alphabet. Decoding turns it back into bytes, shown as text or hex. Spaces and line breaks in the input are ignored.
- 4. Check the options. Base32 can be written with or without
=padding. Ascii85 can be wrapped in<~and~>and can write four zero bytes asz.
What These Encodings Are For
None of them is encryption. Each turns bytes, which may not be printable, into text that can be pasted into an email, a URL, a QR code or a config file, and each is undone by anyone with the encoding's name. They differ in the alphabet they use and in how much longer the text is than the data.
| Encoding | Characters | Length vs. bytes | Hello, World becomes |
|---|---|---|---|
| Base32 (RFC 4648) | 32 | 8 ÷ 5 as long | JBSWY3DPFQQFO33SNRSA==== |
| Base32 extended hex | 32 | 8 ÷ 5 as long | 91IMOR3F5GG5ERRIDHI0==== |
| Base58 (Bitcoin) | 58 | about 1.37 times | 2NEpo7TZsLBYdvo5V |
| Ascii85 (Adobe) | 85 | 5 ÷ 4 as long | <~87cURD_*#4DfTZ)~> |
| Z85 (ZeroMQ) | 85 | 5 ÷ 4 as long | nm=QNz.92jz/PV8 |
Base32
Base32 cuts the bytes into 5-bit groups and writes each as one of 32 characters, A–Z and 2–7. It uses only the digits 2 to 7, leaving out 0, 1 and 8 that resemble O, I and B, and it ignores letter case, so people can read it aloud or type it. The padding sign = rounds the length up to a multiple of eight. RFC 4648 gives test vectors such as foobar → MZXW6YTBOI======. Authenticator-app secrets and Tor onion addresses are Base32.
Base58
Base58 treats the whole input as one large number and writes it in base 58, leaving out 0, O, I and l, and the symbols + and /, so that the result can be copied by double-clicking and is hard to misread. Each leading zero byte is written as the first character, 1. The Bitcoin alphabet is one of several Base58 alphabets; the ones used by Ripple and Flickr order the characters differently, so check which one your data uses. Bitcoin addresses add a checksum and version byte on top, a scheme called Base58Check, which this tool does not compute.
Ascii85 and Z85
Both read four bytes as a 32-bit number and write it as five digits in base 85, which is why they are only 25 percent longer than the data. Adobe's Ascii85, used in PostScript and PDF, uses the characters from ! to u, abbreviates four zero bytes as z and usually wraps the data in <~ and ~>. A final group of one to three bytes gives one more character than it has bytes. Z85, defined in ZeroMQ's RFC 32, uses a different 85-character alphabet chosen to avoid quotes and backslashes in source code, has no z shortcut and no short final group, so its input must be a multiple of four bytes. Its specification example is the eight bytes 86 4f d2 6f b5 59 f7 5b, which encode to HelloWorld. Other base-85 alphabets exist, such as the one in RFC 1924 that Git uses, so match the alphabet to its source.
Frequently Asked Questions
- Is Base32 or Base58 encryption?
- No. They are encodings: anyone can reverse them, because the alphabet and the rules are public. They make data printable and easier to copy, not secret.
- Why does Base58 leave out some characters?
- To avoid look-alikes and symbols. It omits 0 (zero), O (capital o), I (capital i) and l (lowercase L), which can be confused in many fonts, and + and /, which break double-click selection. That leaves 58 characters.
- How do I decode a Base32 string?
- Choose Base32, switch to Decode and paste the string. Case does not matter, and the trailing = signs are optional. If you get an error naming characters, the string is probably Base32 extended hex, Base64 or another encoding.
- What is the difference between Ascii85 and Z85?
- Both use five characters for four bytes, but their alphabets differ. Ascii85 uses the characters from ! to u, has a z shortcut for zeros and may have <~ and ~> around it. Z85 uses a source-code-safe alphabet and no shortcuts.
- Why does Z85 say I need a multiple of four bytes?
- The Z85 specification defines no padding. Its data must be a whole number of 4-byte groups, and its text a multiple of five characters. Add bytes yourself, or use Ascii85, which handles a short final group.
- How do I encode a Base64 string?
- This page does not do Base64. The Text Encoder & Decoder converts text to Base64, URLs and HTML entities and back, and the XOR Cipher page can show hex bytes as Base64.