Qué es Base64 y Por Qué Sigue Apareciendo
Esa extraña cadena de texto en tu código no es un galimatías. Esto es lo que realmente significa.
Estás depurando una API. En algún lugar de la respuesta ves esto:
SGVsbG8gV29ybGQh
O estás mirando el código fuente de un email y encuentras bloques de texto que parecen teclas apretadas al azar. O tu CSS tiene una imagen de fondo que comienza con data:image/png;base64, seguido de un muro de caracteres.
Eso es Base64. Está en todos lados una vez que empiezas a buscarlo.
Qué es Base64 Realmente
Los datos binarios (imágenes, archivos, cualquier cosa que no sea texto plano) no se llevan bien con sistemas diseñados para texto. El email fue construido para caracteres ASCII. Las URLs tienen conjuntos de caracteres restringidos. JSON no maneja binario crudo.
Base64 convierte datos binarios en una cadena de 64 caracteres "seguros": A-Z, a-z, 0-9, + y /. Cualquier archivo binario se convierte en una cadena de texto que no se romperá al pasar por sistemas de solo texto.
No es encriptación. No es compresión. Es solo codificación: una forma diferente de representar los mismos datos.
Dónde lo Verás
Adjuntos de email. Cuando envías un PDF por email, se codifica en Base64, se transmite como texto y luego se decodifica del otro lado.
URIs de datos. Esa sintaxis data:image/png;base64,... incrusta imágenes directamente en HTML o CSS. No se necesita ninguna solicitud de archivo separada.
Autenticación de API. La autenticación básica envía usuario:contraseña como una cadena Base64. (Por eso la autenticación básica sobre HTTP es insegura: Base64 no es encriptación.)
JWTs. Los JSON Web Tokens son tres objetos JSON codificados en Base64 unidos por puntos.
Datos binarios en JSON. JSON no puede incluir bytes crudos, así que el binario se codifica primero en Base64.
Codificación vs Encriptación
La gente confunde esto constantemente.
Codificación Base64: Reversible por cualquiera. No se necesita clave. No es seguro. Solo reformateo.
Encriptación: Reversible solo con la clave correcta. Realmente seguro.
Si puedes decodificar algo sin contraseña, no está encriptado. Base64 "oculta" datos solo de personas que no saben qué es Base64, que es nadie que realmente quiera leerlo.
No guardes contraseñas como Base64. No asumas que los datos Base64 en una API son privados. Es solo texto que se ve raro.
El Problema del Tamaño
Base64 aumenta el tamaño de los datos aproximadamente un 33%. Una imagen de 100KB se convierte en ~133KB cuando se codifica en Base64.
Esto importa para las URIs de datos. Incrustar una imagen grande como Base64 en tu CSS hace el archivo más grande y no puede almacenarse en caché por separado. Bueno para íconos diminutos. Malo para imágenes hero.
Usos Prácticos
Depuración. ¿Ves Base64 en una respuesta de API? Decodifícalo para ver qué hay dentro.
Incrustar imágenes pequeñas. Los íconos de menos de 1-2KB a menudo valen la pena incrustar como URIs de datos para ahorrar solicitudes HTTP.
Pasar binario por canales de texto. ¿Necesitas incluir contenido de archivos en JSON? Codifícalos en Base64.
Leer JWTs. Decodifica cada sección para ver el encabezado, la carga útil y entender qué claims contiene el token.
Base64 no es complicado. Es solo una forma de convertir cualquier dato en una cadena de texto. Reconócelo, decodifica cuando sea necesario y sabe que no proporciona ninguna seguridad, solo compatibilidad.