3
0

Base32 Decode

Egor VolchenkoEgor Volchenko
CreatedNov 9, 2026
UpdatedNov 9, 2026

This Base32 decoder converts a standard RFC 4648 Base32 string to bytes and displays them as UTF-8 text. Use it to inspect an encoded text sample. It accepts lowercase letters too, but requires the correct padding and does not offer a binary-output selector.

1
1

How to use Base32 Decode

Use the following steps to process a small test input.

Decode standard Base32

  1. Enter the Base32 string in Input text. Preserve any padding required by its length.
  2. Leave Input Encoding: at UTF-8. This decoder reads the raw Base32 string; the shared input selector does not choose a Base32 alphabet.
  3. Leave Auto / Live on to update the result as you edit. To run manually, turn it off and click Run.
  4. Read Base32 Decode Result. Invalid Base32 produces an error; binary bytes may not display as readable UTF-8.
  5. Click Copy to copy the result. Use Clear where shown, or the field clear controls, to remove the text.

MZXW6YTBOI====== decodes to foobar. Lowercase mzxw6ytboi====== works too. Removing the required padding from this example returns Invalid Base32 input.

A rejected request may leave an earlier result visible. Clear the fields and recheck the input before relying on a new calculation.

Keep padding and alphabet consistent

Leading and trailing whitespace is trimmed, and letters are made uppercase before decoding. Internal spaces and line breaks are not stripped. This operation uses standard Base32, with no Base32hex or Crockford selector.

Distinguish decoded bytes from readable text

The decoded bytes are rendered as UTF-8. Base32 can encode arbitrary binary data, so a valid input can produce nonprintable or replacement characters. The current form has no Hex or Base64 output option.

Frequently asked questions

Not when the final group requires padding. For example, MZXW6YTBOI is rejected, while MZXW6YTBOI====== is accepted. Some whole-group values require no equals signs.

API — Base32 to Text Converter

Automate this tool directly from your scripts, CI/CD pipelines, or backend applications via HTTP POST.

No API Key Required 60 req/min
POST https://million.tools/api/v1/run/base32-decode

Request Parameters (JSON / Form Data)

  • start (or input)

    Input text

    Type: string Default: —
  • input_encoding

    Input Encoding

    hex hex_ignore_non_hex base64 utf-8 utf-16le utf-16be windows-1251 windows-1252
    Type: string Default: utf-8
bash — cURL
curl -X POST https://million.tools/api/v1/run/base32-decode \
  -H "Content-Type: application/json" \
  -d '{"start":"MZXW6YTBOI======"}'
const response = await fetch('https://million.tools/api/v1/run/base32-decode', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "start": "MZXW6YTBOI======"
  }),
});

const data = await response.json();
console.log(data.result);
import requests

response = requests.post(
    'https://million.tools/api/v1/run/base32-decode',
    json={
        "start": "MZXW6YTBOI======",
    },
    timeout=15,
)

data = response.json()
print(data['result'])
$ch = curl_init('https://million.tools/api/v1/run/base32-decode');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'start' => 'MZXW6YTBOI======',
    ]),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

echo $response['result'] ?? '';
{
    "status": "success",
    "tool": "base32-decode",
    "service": "base32_decode",
    "result": "foobar",
    "results": {
        "result": "foobar"
    }
}
Egor Volchenko
Egor Volchenko Developer & Author

Hi! I’m a WordPress developer with over 10 years of experience. I love Tailwind CSS, clean code, and intuitive interfaces. I’m currently working on million.tools — a service with convenient online tools for everyday tasks. I’m building it from scratch with great attention to detail and user experience.

Published:
Updated:

Ratings & feedback 0

Share your experience with this tool.

Leave feedback

Your rating (optional)

Select a rating

Write a review, leave a rating, or do both.

Your email stays private.

No feedback yet

Be the first to leave a review or rating.