Base32 beschreibt Verfahren zur Kodierung von Binärdaten in eine Zeichenfolge, die nur aus 32 verschiedenen ASCII-Zeichen besteht (plus einem zusätzlichen 33. Zeichen als Füllzeichen am Datenende). Angewendet wird es in Umgebungen, wo nicht zwischen Groß- und Kleinbuchstaben unterschieden wird, so unter Anderem bei Umlaut-Domainnamen.
Es gibt verschiedene Kodierungsmöglichkeiten. Bei Umlaut-Domainnamen wird der sogenannte Punycode verwendet, der die Sonderzeichen und ihre Position kodiert. RFC 3548 beschreibt eine andere, allgemein gültige Kodierung für beliebige Binärdaten, welche wie folgt abläuft:
Fünf 8-Bit-Bytes (also zusammen 40 Bit) werden in acht 5-Bit-Gruppen zerlegt. Jede dieser Gruppen entspricht einer Zahl zwischen 0 und 31. Diese Zahlen werden anhand der nachfolgenden Umsetzungstabelle in „druckbare ASCII-Zeichen“ umgewandelt und ausgegeben. Wenn am Ende kein kompletter 40-Bit-Block mehr gebildet werden kann, wird dieser Block mit Nullbytes aufgefüllt und die 5-Bit-Gruppen, die nur aus Füllbits bestehen, mit = kodiert, um dem Dekodierer mitzuteilen, wie viele Füllbits hinzugefügt wurden.
| Wert | Zeichen | Wert | Zeichen | Wert | Zeichen | Wert | Zeichen | |||
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | A | 8 | I | 16 | Q | 24 | Y | |||
| 1 | B | 9 | J | 17 | R | 25 | Z | |||
| 2 | C | 10 | K | 18 | S | 26 | 2 | |||
| 3 | D | 11 | L | 19 | T | 27 | 3 | |||
| 4 | E | 12 | M | 20 | U | 28 | 4 | |||
| 5 | F | 13 | N | 21 | V | 29 | 5 | |||
| 6 | G | 14 | O | 22 | W | 30 | 6 | |||
| 7 | H | 15 | P | 23 | X | 31 | 7 |
Die Ziffern 0 und 1 werden nicht verwendet, da bei schriftlicher Wiedergabe eine Verwechslungsgefahr mit den Buchstaben O und I besteht.