Base32
# Base32

Base 32 es un sistema de numeración posicional que usa 32 como base. Es similar al sistema de numeración posicional Base64 pero usando 32 como base en lugar de 64. Para representar los números usa las 26 letras mayúsculas A-Z y los seis dígitos 2-7.

## Software

El sistema de Base32 es una notación para codificar datos de bytes arbitrarios usando un conjunto restringido de símbolos que pueden ser usados por humanos y procesados por computadoras.

Este sistema consiste en un conjunto de símbolos compuesto de 32 caracteres, así como un algoritmo para codificar secuencias arbitrarias de bytes de 8 bits en el alfabeto de Base32. Debido al hecho que se necesita más de un símbolo de Base32 de 5 bits para representar cada byte de entrada de 8 bits, también especifica requisitos sobre las longitudes permitidas de cadenas de Base32 (que deben ser múltiplos de 40 bits).

## Alfabeto de Base32

El alfabeto de Base32 más utilizado está definido en RFC 4648. Utiliza las letras de la A a la Z y los números del 2 al 7. El 0 y el 1 se omiten debido a su similitud con las letras O e I (así el "2" en realidad tiene un valor decimal de 26).

Alfabeto de Base32 RFC 4648 :

| Valor | Símbolo | Valor | Símbolo | Valor | Símbolo | Valor | Símbolo |
| - | - | - | - | - | - | - | - |
| 0 | A | 9 | J | 18 | S | 27 | 3 |
| 1 | B | 10 | K | 19 | T | 28 | 4 |
| 2 | C | 11 | L | 20 | U | 29 | 5 |
| 3 | D | 12 | M | 21 | V | 30 | 6 |
| 4 | E | 13 | N | 22 | W | 31 | 7 |
| 5 | F | 14 | O | 23 | X | | |
| 6 | G | 15 | P | 24 | Y | | |
| 7 | H | 16 | Q | 25 | Z | | |
| 8 | I | 17 | R | 26 | 2 | pad | = |

## Comparación con Base64

### Ventajas

* Los códigos obtenidos no son sensibles a mayúsculas. Esta propiedad hace que los códigos sean más memorizable por humanos y que se puedan utilizar en sistemas de archivos no sensibles a mayúsculas.
* Los símbolos utilizados en la representación son muy diferentes y por lo tanto están menos sujeto a errores de interpretación por humanos. Por ejemplo no se puede usar el '1' (por lo que no puede confundirse con la 'I'), el '8' (con la 'B') ni el '0' (con la 'O').
* Puede ser incluido en una URL sin tener que recodificar ningún carácter.

### Desventajas

* Para representar el mismo número que uno escrito en Base64, se ocupa el 20% más de espacio.
