> For the complete documentation index, see [llms.txt](https://www.ctfrecipes.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.ctfrecipes.com/cryptography/general-knowledge/encoding/data-encoding/base32.md).

# Base32

**Base32** is a binary-to-text encoding scheme that represents binary data as a sequence of 32 characters (letters and numbers).

## How it works

Base32 encoding works by dividing the binary data into 5-bit blocks and then representing each block as a character in a predefined set of 32 characters.

The symbol "=" is used as padding.

This results in a representation that is more compact than the original binary data, making it easier to store or transmit.

| 00000 | 0  | A |
| ----- | -- | - |
| 00001 | 1  | B |
| 00010 | 2  | C |
| 00011 | 3  | D |
| 00100 | 4  | E |
| 00101 | 5  | F |
| 00110 | 6  | G |
| 00111 | 7  | H |
| 01000 | 8  | I |
| 01001 | 9  | J |
| 01010 | 10 | K |
| 01011 | 11 | L |
| 01100 | 12 | M |
| 01101 | 13 | N |
| 01110 | 14 | O |
| 01111 | 15 | P |
| 10000 | 16 | Q |
| 10001 | 17 | R |
| 10010 | 18 | S |
| 10011 | 19 | T |
| 10100 | 20 | U |
| 10101 | 21 | V |
| 10110 | 22 | W |
| 10111 | 23 | X |
| 11000 | 24 | Y |
| 11001 | 25 | Z |
| 11010 | 26 | 2 |
| 11011 | 27 | 3 |
| 11100 | 28 | 4 |
| 11101 | 29 | 5 |
| 11110 | 30 | 6 |
| 11111 | 31 | 7 |

## Python

```python
import base64

data = b"SomeData"

encoded = base64.b32encode(data)

decoded = base64.b32decode(encoded)
```

## Resources

{% embed url="<https://gchq.github.io/CyberChef/#recipe=From_Base32(>" %}

{% embed url="<https://www.dcode.fr/base-32-encoding>" %}
