Byte encoding

Base32: choose an alphabet and preserve canonical padding

Base32 writes byte streams using groups of five bits. Choosing the right alphabet and checking the final group prevents different strings from quietly representing the same bytes.

Content updated: · Maintainer and corrections

Do not guess the alphabet

RFC 4648 section 6 uses A–Z and 2–7. Section 7 base32hex uses 0–9 and A–V. For foobar, the respective encodings are MZXW6YTBOI====== and CPNMUOJ1E8======. Choosing the wrong alphabet can change decoded bytes even when every character is legal.

This decoder accepts ASCII lowercase as a deliberate convenience, then emits uppercase. Unicode case-fold lookalikes, whitespace, 0/1 substitutions in the standard alphabet and Crockford conventions are rejected. Ask the producing system which encoding it uses.

Padding and unused bits are separate checks

Five bytes become eight symbols. A partial group can contain 2, 4, 5 or 7 data symbols; with padding it receives 6, 4, 3 or 1 trailing = characters. RFC 4648 requires padding unless the referring protocol explicitly permits omission. This standalone tool offers padded encoding by default and explicitly accepts omitted padding on decoding.

Supplied padding must have exactly the canonical count and appear only at the end. Unused low bits in the final data symbol must be zero: MY====== represents f, while MZ====== is rejected even though permissive decoders may return the same byte. Strict canonical checks help detect corruption but are not authentication.

Bytes do not always form text

Encoding text uses UTF-8, while Hex mode uses complete byte pairs without separators. Decoding to text uses fatal UTF-8 checks and preserves an initial BOM. For example, 74====== decodes to byte ff, which is not valid UTF-8; choose Hex to inspect ff rather than inserting a replacement character.

The limit is 262144 raw or decoded bytes. Input is bounded to 524288 characters and Base32 to 419432 characters. Complete copies and downloads preserve every character; the visible preview may be shorter. Inputs stay in page memory. Base32 is reversible encoding, not encryption, randomness, a checksum or a safe place to paste credentials.

Data provenance

Sources