Base32 and Base58 Encoder and Decoder
Encode text or hex bytes to Base32 or Base58, or decode them back, in one tool. Pick the standard RFC 4648 alphabet, the extended hex alphabet, Crockford's alphabet or the Bitcoin Base58 alphabet, choose whether to add padding, and see how much longer the encoded text is. Everything runs in your browser.
Letters A to Z and digits 2 to 7. Used for authenticator keys and many file names.
The encoded text is 2 times as long as the data. Base64 is about 1.33, Base32 is 1.6 and Base58 is about 1.37.
Base32 and Base58 turn bytes into text made of letters and digits, so that data can travel in places that only allow plain text, such as a URL, a file name or a code you read aloud. They are encodings, not encryption: anyone can reverse them. Base32 packs 5 bits into each character, and Base58 treats the bytes as one big number and writes it in base 58, adding a leading 1 for every leading zero byte. Everything is worked out in your browser and nothing is uploaded.
Related Tools
[5 suggestions]Base64 Encoder / Decoder
Easily encode plain text to Base64 format or decode Base64 back to readable text.
Developer & WebText to Hex Converter
Convert text to hexadecimal bytes and hex back to text, in UTF-8, UTF-16 or Latin-1, with your choice of separator and prefix.
Format ConversionULID Generator and Decoder
Generate sortable ULIDs, or paste one to read the time it was created and see its 128 bits as hex and as a UUID.
Developer & WebNumber Base Converter
Convert whole numbers between binary, octal, decimal, hex and any base from 2 to 36, with two's complement.
Developer & WebHash Generator (MD5, SHA-1, SHA-256, SHA-512)
Generate MD5, SHA-1, SHA-256, and SHA-512 cryptographic hashes live from any text using the native Web Crypto API.
Developer & WebAbout the Base32 and Base58 Encoder and Decoder
Base32 and Base58 write binary data as plain text. Base32 splits the data into 5 bit groups and maps each to one of 32 characters, so every 5 bytes become 8 characters, which makes the text 1.6 times as long as the data. RFC 4648 uses the letters A to Z and the digits 2 to 7, and pads the end with = signs to a multiple of 8 characters. For example, foobar becomes MZXW6YTBOI======, and Hello World! becomes JBSWY3DPEBLW64TMMQQQ====. The extended hex alphabet uses 0 to 9 and A to V, which keeps the encoded text in the same sort order as the original bytes. Crockford's alphabet leaves out I, L, O and U so that codes are easy to read aloud, and reads O as 0 and I or L as 1 when decoding. Base32 is common in authenticator app keys and file names. Base58 treats the bytes as one large number and writes it in base 58 using the digits and letters without 0, O, I and l, so look-alike characters cannot be confused. It adds a leading 1 for every leading zero byte. Hello World! becomes 2NEpo7TZRRrLZSi2U. Base58 is used for Bitcoin addresses and short identifiers, and is about 1.37 times as long as the data. Text is converted to UTF-8 bytes first, and decoded bytes that are not valid UTF-8 are shown as hex. These are encodings, not encryption, and anyone can decode them.
What is Base32 used for?▾
Writing binary data as text that is easy to type, read aloud or put in a file name. It is common in authenticator app secret keys, some file systems and identifiers such as ULIDs.
What is the difference between Base32 and Base64?▾
Base32 uses 32 characters and makes text 1.6 times as long as the data, while Base64 uses 64 characters and makes it about 1.33 times as long. Base32 has no lowercase and no symbols, which makes it safer in file names and easier to read.
Why does Base58 leave out 0, O, I and l?▾
Those characters look alike in many fonts. Removing them makes addresses and IDs easier to copy by hand without mistakes. Base58 also drops the + and / that Base64 uses, so it is safe in links.
What does the = at the end of Base32 mean?▾
It is padding that makes the encoded length a multiple of 8 characters. Many decoders accept text without it, and you can switch padding off when encoding.
Is my data uploaded?▾
No. The calculation runs in your browser and nothing you enter is sent anywhere.