¿Qué es la codificación Base64?
La codificación Base64 es una forma de convertir datos (generalmente binarios) al conjunto de caracteres ASCII. Es importante mencionar que Base64 no es una técnica de cifrado ni de compresión, aunque a veces se confunde con cifrado por la forma en que parece ocultar los datos. De hecho, el tamaño de una pieza de información codificada en Base64 es 1,3333 veces el tamaño real de los datos originales.
Base64 es la técnica de codificación en base más utilizada, siendo Base16 y Base32 los otros dos esquemas de codificación comúnmente usados.
La codificación Base64 es una de las formas más comunes de convertir datos binarios en texto ASCII plano. Es un formato muy útil para comunicar datos entre uno o más sistemas que no pueden manejar fácilmente datos binarios, como imágenes en HTML o solicitudes web.
¿Cómo funciona Base64?
Convertir datos a Base64 es un proceso de varios pasos. Así funciona para cadenas de texto:
- Calcular la versión binaria de 8 bits del texto de entrada
- Reagrupar la versión de 8 bits de los datos en múltiples bloques de 6 bits
- Encontrar la versión decimal de cada bloque binario de 6 bits
- Encontrar el símbolo Base64 para cada uno de los valores decimales mediante una tabla de búsqueda Base64
| Valor | Carácter | Valor | Carácter |
|---|---|---|---|
| 0 | A | 32 | g |
| 1 | B | 33 | h |
| 2 | C | 34 | i |
| 3 | D | 35 | j |
| 4 | E | 36 | k |
| 5 | F | 37 | l |
| 6 | G | 38 | m |
| 7 | H | 39 | n |
| 8 | I | 40 | o |
| 9 | J | 41 | p |
| 10 | K | 42 | q |
| 11 | L | 43 | r |
| 12 | M | 44 | s |
| 13 | N | 45 | t |
| 14 | O | 46 | u |
| 15 | P | 47 | v |
| 16 | Q | 48 | w |
| 17 | R | 49 | x |
| 18 | S | 50 | y |
| 19 | T | 51 | z |
| 20 | U | 52 | 0 |
| 21 | V | 53 | 1 |
| 22 | W | 54 | 2 |
| 23 | X | 55 | 3 |
| 24 | Y | 56 | 4 |
| 25 | Z | 57 | 5 |
| 26 | a | 58 | 6 |
| 27 | b | 59 | 7 |
| 28 | c | 60 | 8 |
| 29 | d | 61 | 9 |
| 30 | e | 62 | + |
| 31 | f | 63 | / |
¿Por qué usar codificación Base64?
Enviar información en formato binario a veces puede ser riesgoso ya que no todas las aplicaciones o sistemas de red pueden manejar datos binarios en crudo. Por otro lado, el conjunto de caracteres ASCII es ampliamente conocido y muy fácil de manejar para la mayoría de los sistemas.
Por ejemplo, los servidores de correo electrónico esperan datos textuales, así que normalmente se usa ASCII. Por lo tanto, si quieres enviar imágenes o cualquier otro archivo binario a un servidor de correo, primero necesitas codificarlo en un formato basado en texto, preferiblemente ASCII. Aquí es donde la codificación Base64 resulta extremadamente útil para convertir datos binarios a los formatos correctos.
Casos de uso comunes de Base64
También puedes usar Base64 para representar datos binarios de forma compatible con HTML, JavaScript y CSS. Por ejemplo, puedes insertar una imagen directamente en un archivo CSS o JavaScript usando Base64.
Es posible usar Base64 para convertir una entrada, como datos de formulario o JSON, en una cadena con un conjunto de caracteres reducido que sea segura para URLs. Sin embargo, debido a cómo ciertos servidores pueden interpretar los caracteres de suma (+) y barra (/), se recomienda usar encodeURIComponent en su lugar.
Limitaciones de Base64
Base64 no pretende ser un método de cifrado seguro.
Base64 tampoco es un método de compresión. Codificar una cadena a Base64 suele producir un resultado un 33% más largo.