Base64 es una codificación que convierte cualquier dato binario (o secuencia de bytes) en una cadena de texto usando solo 64 caracteres ASCII. No es cifrado ni compresión: sirve para transportar o guardar binario en sitios que solo aceptan texto.
¿Para qué se usa Base64?
- Data URLs: incrustar una imagen o un pequeño archivo en HTML o CSS como
data:image/png;base64,...sin hacer una petición HTTP aparte. - Correo (MIME): adjuntos y contenido binario se codifican en Base64 para enviarlos en mensajes de texto.
- APIs y JSON: cuando necesitas enviar un archivo o un binario en un JSON, a menudo se envía como string en Base64.
- JWT: el header y el payload de un JWT son Base64URL (variante sin
+,/ni=), no cifrado; cualquiera puede decodificarlos y leer el contenido. - URLs y firmas: hashes o tokens en parámetros de URL suelen usar Base64URL para evitar caracteres problemáticos.
Cómo funciona (a grandes rasgos)
Se toman los bytes de entrada y se agrupan de 3 en 3 (24 bits). Esos 24 bits se dividen en 4 bloques de 6 bits; cada bloque se mapea a uno de 64 caracteres (A–Z, a–z, 0–9, +, /). Si los bytes no completan un múltiplo de 3, se añade relleno con =. El resultado es una cadena más larga que el original (aproximadamente un 33% más).
Codificar y decodificar
Un codificador/decodificador Base64 online te permite pegar texto o subir un archivo, codificar a Base64 y decodificar de vuelta. Úsalo para pruebas, para revisar payloads de JWT (que son Base64URL) o para generar data URLs de prueba. En código, casi todos los lenguajes tienen funciones nativas o en la biblioteca estándar (btoa/atob en el navegador, Buffer en Node.js, etc.). Recuerda: Base64 no protege la información; si necesitas confidencialidad, usa cifrado (por ejemplo AES) además de, o en lugar de, Base64.