Qué es la codificación Base64 y por qué existe
Base64 es un esquema de codificación de binario a texto que convierte datos binarios arbitrarios — imágenes, archivos, cadenas binarias — en un conjunto de caracteres ASCII seguros (A-Z, a-z, 0-9, +, /) que puede transmitirse de forma fiable en cualquier lugar donde se permita texto. Fue diseñado para los primeros días de internet, donde muchos protocolos (SMTP, cabeceras HTTP, atributos XML) solo admitían texto ASCII de 7 bits.
Cada valor codificado en Base64 es aproximadamente un 33% más grande que el original. Ese es el compromiso: pagas en tamaño para ganar transmisión universal segura para texto. Por eso Base64 se usa para incrustar imágenes en CSS (`data:image/png;base64,...`), codificar tokens JWT, adjuntar archivos en partes MIME de email y almacenar datos binarios en JSON y XML.
Base64 estándar vs URL-safe
El Base64 estándar usa `+` y `/` como sus dos caracteres no alfanuméricos. Estos son caracteres reservados en las URLs, lo que significa que una cadena Base64 estándar en un parámetro de consulta URL se romperá sin codificación porcentual. Base64 URL-safe reemplaza `+` por `-` y `/` por `_`, haciendo el output seguro para URLs y nombres de archivo.
Los tokens JWT siempre usan Base64 URL-safe. En caso de duda: Base64 estándar para contenido de archivos y email, Base64 URL-safe para cualquier cosa que aparezca en una URL o cabecera HTTP.
Casos de uso comunes de Base64
Incrustar imágenes pequeñas directamente en HTML/CSS (data URIs). Codificar credenciales de API en cabeceras HTTP Basic Auth. Codificación de cabecera y payload JWT. Almacenar blobs binarios en archivos `.env` o variables de entorno. Codificar adjuntos de archivo en email. Pasar datos binarios a través de canales de solo texto como payloads de API JSON.