Cryptology Academy · Lección

Codificación Base64: cómo funciona

Descifre el misterio de Base64, el esquema de codificación utilizado en correos electrónicos, JWT y transmisión de datos.

Lección 1 de 413 pasos

Codificación Base64: cómo funciona es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Por qué el sistema binario necesita una representación textual

Muchos sistemas, incluidos el correo electrónico, los encabezados HTTP y XML, se diseñaron para manejar texto, pero no datos binarios arbitrarios. Un valor de byte de 0x00 (nulo) o 0x1A (carácter de control) puede provocar errores de análisis o corrupción de datos.

La codificación Base64 convierte datos binarios arbitrarios en un subconjunto de caracteres ASCII seguro para sistemas que solo manejan texto, lo que permite incrustar contenido binario, como imágenes y certificados, en protocolos basados en texto.

Agrupación de 6 bits a partir de bytes de 8 bits

Base64 toma tres bytes de 8 bits (24 bits en total) y los divide en cuatro grupos de 6 bits. Cada grupo de 6 bits representa un valor de 0 a 63, que se asigna a un carácter del alfabeto Base64.

Esta proporción de 3 a 4 significa que cada 3 bytes de entrada producen 4 caracteres de salida, lo que supone un aumento de tamaño del 33 %. La relación funciona de manera exacta porque 3 bytes = 24 bits = 4 grupos de 6 bits.

El alfabeto Base64

El alfabeto Base64 tiene 64 caracteres: letras mayúsculas de A a Z (índices 0-25), letras minúsculas de a a z (índices 26-51), dígitos del 0 al 9 (índices 52-61), el signo más + (índice 62) y la barra diagonal / (índice 63).

Este alfabeto evita todos los caracteres de control y la mayoría de los signos de puntuación que podrían causar problemas en los sistemas de texto. Cada carácter de la salida Base64 es un carácter ASCII imprimible y seguro para su uso en prácticamente cualquier protocolo de texto.

Relleno con signos =

Cuando la longitud de la entrada no es un múltiplo de 3 bytes, se necesita relleno. Si queda un byte, se rellena hasta formar un grupo de 12 bits, que produce 2 caracteres Base64 seguidos de "==". Si quedan dos bytes, producen 3 caracteres Base64 seguidos de "=".

Los signos de relleno = no son datos codificados; indican al decodificador que el último bloque es más corto que 3 bytes. Garantizan que la longitud de la salida siempre sea un múltiplo de 4 caracteres.

Ejemplo de codificación: Man

Los valores ASCII de "Man" son M=77 (01001101), a=97 (01100001), n=110 (01101110). Concatenados: 010011010110000101101110.

División en grupos de 6 bits: 010011 | 010110 | 000101 | 101110 = 19 | 22 | 5 | 46. Al consultar el alfabeto Base64: 19=T, 22=W, 5=F, 46=u. "Man" se codifica como "TWFu".

Variante Base64url

Base64 estándar utiliza + y /, que tienen significados especiales en las URL y los nombres de archivo. Base64url es una variante que reemplaza + por - y / por _, lo que la hace segura para su uso en URL, nombres de archivo y valores de cookies.

Los JWT (JSON Web Tokens) utilizan la codificación Base64url para sus secciones de encabezado y carga útil. Los estándares JOSE (JSON Object Signing and Encryption) se basan completamente en Base64url.

Dónde se utiliza Base64

Base64 se utiliza en los archivos adjuntos de correo electrónico MIME (para codificar archivos binarios en correos basados en texto), en los tokens JWT (para codificar el encabezado y la carga útil JSON), en las URI de datos de HTML (para incrustar imágenes directamente en CSS/HTML) y en el formato PEM de certificados X.509.

El formato PEM (Privacy Enhanced Mail) encapsula certificados binarios codificados en DER en Base64, entre los encabezados "-----BEGIN CERTIFICATE-----" y "-----END CERTIFICATE-----".

Base64 no proporciona seguridad

Base64 no es cifrado. Es una codificación reversible que no utiliza ninguna clave. Cualquiera que vea datos codificados en Base64 puede decodificarlos de inmediato con herramientas disponibles gratuitamente o con una sola línea de código en cualquier lenguaje de programación.

Un error común es pensar que las contraseñas o los tokens codificados en Base64 están "ocultos". No lo están. Si usted puede decodificarlos, un atacante también puede hacerlo. La seguridad requiere cifrado, no codificación.

La decodificación es trivial

Decodificar Base64 es tan fácil como codificarlo. Cada grupo Base64 de 4 caracteres se vuelve a asignar a sus valores de 6 bits, se concatena y se divide en bytes. El relleno = indica cuántos bytes representa el último grupo.

En Python: import base64; base64.b64decode("TWFu") devuelve b"Man". El proceso es determinista, no pierde información y no requiere ninguna clave ni secreto.

Sobrecarga y eficiencia de Base64

La sobrecarga de tamaño del 33 % de Base64 (4 bytes de salida por cada 3 bytes de entrada), sumada a los saltos de línea cada 76 caracteres (como exige MIME), hace que Base64 no sea eficiente para transferencias binarias grandes.

Los protocolos binarios modernos, como HTTP/2 con entramado binario y WebSockets con tramas binarias, pueden manejar bytes sin procesar directamente, eliminando la necesidad de Base64 en contextos de alto rendimiento.

Base32 y Base58: otros esquemas de codificación

Base32 utiliza un alfabeto de 32 caracteres (A-Z y 2-7), por lo que produce una salida más larga que Base64, pero no distingue entre mayúsculas y minúsculas y es adecuado para contextos en los que se puede perder esta distinción. Los secretos compartidos de TOTP suelen codificarse en Base32.

Base58, que Bitcoin utiliza para las direcciones de billetera, elimina caracteres visualmente ambiguos como 0, O, I y l. Esto reduce los errores de transcripción al copiar direcciones. La desventaja es que Base58 no es una potencia de 2, por lo que la codificación es ligeramente más compleja.

Cuestionario sobre el alfabeto Base64

Compruebe sus conocimientos sobre la codificación Base64.

Conclusiones clave: codificación Base64

Base64 convierte datos binarios en texto agrupando los bits en bloques de 6 bits y asignándolos a un alfabeto de 64 caracteres. Produce una sobrecarga de tamaño del 33 % y utiliza el relleno = cuando la cantidad de bytes no es múltiplo de 3.

Base64 no proporciona seguridad. Se utiliza para garantizar la compatibilidad en las transmisiones, no la confidencialidad. Base64url (-/_) es la variante segura para URL que se utiliza en los JWT. La decodificación no requiere ninguna clave y tarda unos milisegundos.

Gratis para empezar

Aprende Cryptology Academy con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
67
Lecciones
261

Preguntas frecuentes

¿La lección «Codificación Base64: cómo funciona» es gratis?

Sí — el texto completo de «Codificación Base64: cómo funciona» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Codificación Base64: cómo funciona»?

Descifre el misterio de Base64, el esquema de codificación utilizado en correos electrónicos, JWT y transmisión de datos. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Codificación Base64: cómo funciona»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Codificación Base64: cómo funciona
  2. ASCII, Unicode y representación del texto
  3. Hexadecimal en la salida criptográfica
  4. Codificación frente a cifrado y hashing
← Volver a Cryptology Academy