Codificador/Decodificador Base64
Herramienta gratuita para codificar y decodificar Base64 online. Soporte UTF-8, ASCII, codificación segura URL y múltiples conjuntos de caracteres.
Codificador/Decodificador Base64 - Codificar y Decodificar Base64 Online
Una potente herramienta online de codificación y decodificación Base64. Codifique texto a formato Base64 o decodifique cadenas Base64 de vuelta a texto plano. Soporte para múltiples conjuntos de caracteres (UTF-8, ASCII, UTF-16LE, ISO-8859-1), codificación segura URL, generación de URIs data: para imágenes y archivos, ajuste opcional de líneas a 76 caracteres (MIME/PEM) y conversión instantánea. Perfecta para desarrolladores, administradores de sistemas y cualquiera que trabaje con codificación Base64 en desarrollo web, APIs o transmisión de datos.
¿Qué es Base64 y cuándo debo usarlo?
Base64 es un esquema de codificación de binario a texto definido en RFC 4648 que representa bytes arbitrarios de 8 bits usando un alfabeto de 64 caracteres (A-Z, a-z, 0-9, + y /). No es cifrado: no aporta confidencialidad alguna. Se usa cuando necesitas transportar o incrustar datos binarios en un canal que solo acepta texto: cuerpos de correo (MIME, RFC 2045), cabeceras de autenticación HTTP Basic, cargas JSON o XML, URIs data: para imágenes en línea en HTML y CSS, segmentos JWT, claves y certificados PEM, y columnas de base de datos que solo aceptan texto. Cada tres bytes de entrada se convierten en cuatro caracteres de salida, por lo que el formato codificado es aproximadamente un 33% más grande. Si tus datos ya son texto, no los codifiques en Base64: desperdicias bytes y rompes la legibilidad.
¿Por qué la salida es un 33% más grande que mi entrada?
Base64 mapea cada 3 bytes (24 bits) a 4 caracteres de 6 bits cada uno, dando una relación de expansión de 4:3 (aproximadamente 1,333). Si la longitud de entrada no es múltiplo de 3, el codificador rellena el grupo final con uno o dos caracteres = para que la longitud de salida sea siempre múltiplo de 4. Para cargas típicas esto significa alrededor de un 33% de sobrecarga, más algunos bytes de relleno. Para entradas muy pequeñas la sobrecarga relativa es mayor; para un solo byte obtienes 4 caracteres (300% de expansión). Si el tamaño importa, considera Base85/Ascii85 (alrededor del 25% de sobrecarga) o transporte binario directo. Re-comprimir la cadena Base64 con gzip casi nunca ayuda.
¿Cuál es la diferencia entre Base64 estándar y Base64 seguro para URL?
Base64 estándar (RFC 4648 sección 4) usa + y / como los dos últimos caracteres del alfabeto y = para el relleno. Esos tres símbolos colisionan con caracteres reservados en URLs, cadenas de consulta y nombres de archivo. Base64 seguro para URL (RFC 4648 sección 5) sustituye - por + y _ por /, y a menudo elimina el relleno = final. Los bytes decodificados son idénticos: solo difiere el alfabeto. Los tokens JWT, el estado de OAuth y la mayoría de las APIs web modernas usan la variante segura para URL. Si decodificas una cadena que contiene - o _ con un decodificador estándar obtendrás basura o un error. Asegúrate de que tu codificador y decodificador coincidan en el alfabeto.
¿Puede Base64 manejar cadenas Unicode o solo ASCII?
Base64 opera sobre bytes, no sobre caracteres, así que la pregunta se reduce a: ¿cómo se convierte tu cadena a bytes antes de codificar? La respuesta universal es UTF-8 (RFC 3629). Codificar la cadena "café" primero se convierte en los bytes 63 61 66 C3 A9 en UTF-8, y luego Base64 produce "Y2Fmw6k=". Un decodificador que interprete esos mismos bytes de nuevo como UTF-8 devolverá "café" correctamente. Si el emisor y el receptor no coinciden en la codificación de texto (uno usa UTF-8 y el otro Latin-1), el viaje de ida y vuelta produce mojibake. Esta herramienta usa UTF-8 en todo momento. Para depurar texto internacional, verifica primero la secuencia de bytes con un visor hexadecimal.
¿Por qué obtengo errores de "carácter inválido" al decodificar?
El alfabeto estándar tiene exactamente 64 caracteres más = para el relleno. Cualquier otro byte (salto de línea, espacio, tabulación, comilla tipográfica, emoji, o un + que un analizador de URL convirtió en espacio) hará fallar la decodificación estricta. Causas comunes: (1) la cadena pasó por un sistema que ajusta líneas cada 76 caracteres por convención MIME pero el decodificador no está en modo tolerante; (2) un formulario URL trató + como espacio; (3) la cadena vino de un atributo HTML donde & fue codificado como entidad; (4) el relleno = se eliminó en tránsito. Soluciones: elimina los espacios en blanco antes de decodificar, reemplaza espacios por +, y vuelve a añadir = al final.

¿Se considera Base64 cifrado o alguna forma de seguridad?
No: Base64 es codificación, no cifrado. La transformación es totalmente reversible sin ninguna clave, y cualquier decodificador Base64 del planeta puede leer tu salida. Tratar Base64 como una forma de "ocultar" contraseñas, claves de API o información personal es uno de los errores de seguridad más comunes en revisiones de código. La autenticación HTTP Basic, por ejemplo, envía credenciales como Base64("usuario:contraseña"): por eso Basic auth requiere HTTPS para ser seguro. Si necesitas confidencialidad, usa criptografía real: AES-GCM o ChaCha20-Poly1305 para cifrado simétrico, RSA-OAEP o X25519 para intercambio de claves, y una biblioteca probada (libsodium, Web Crypto API, OpenSSL). Base64 puede envolver el texto cifrado resultante para transporte.
¿Cómo codifico en streaming un archivo grande sin cargarlo en memoria?
Base64 es amigable con los bloques porque cada 3 bytes de entrada se mapean limpiamente a 4 caracteres de salida, así que puedes codificar en trozos siempre que cada trozo sea múltiplo de 3 bytes (excepto el trozo final, que recibe el relleno). En Node.js, canaliza el archivo a través de fs.createReadStream hacia un Transform que llame a Buffer.toString('base64') en cada trozo múltiplo de 3. En Python, usa base64.encodebytes en lecturas iteradas de, por ejemplo, 57 KB (múltiplo de 3, encaja en líneas MIME de 76 caracteres). En el navegador, la API FileReader.readAsDataURL maneja esto por ti. Evita codificar trozos independientemente y concatenarlos: si algún tamaño no es divisible por 3, el = intermedio corrompe la salida.
¿Qué es Base64URL sin relleno y por qué JWT lo usa?
JWT (RFC 7519) y JOSE (RFC 7515) especifican segmentos codificados en base64url con todo el relleno = eliminado. La razón es puramente cosmética y operativa: los tokens viajan en URLs, cabeceras HTTP y cookies donde = necesita codificación porcentual (=%3D) o activa analizadores que esperan pares clave=valor. Eliminar el relleno acorta los tokens en 1-3 caracteres y evita el dolor de cabeza del escape. Para decodificar, debes volver a añadir relleno para que la longitud de la cadena sea múltiplo de 4: añade "", "==" o "=" según longitud mod 4. La mayoría de las bibliotecas JWT hacen esto por ti, pero si decodificas manualmente con Buffer.from(str, 'base64url') en Node 16+ moderno simplemente funciona.
¿Cómo convierto una imagen o archivo en un URI data:?
Un URI data: incrusta un archivo directamente en HTML, CSS o SVG para que el navegador no necesite una petición HTTP adicional. La sintaxis es data:<tipo-mime>;base64,<carga-base64> — por ejemplo data:image/png;base64,iVBORw0KGgo... Para construir uno aquí, arrastra o elige un archivo en el panel de codificación y marca "Salida como URI data:"; la herramienta detecta el tipo MIME del archivo y antepone el prefijo correcto data:<mime>;base64,, dándote una cadena lista para copiar. Pégala en un CSS background-image: url(...), un <img src>, o un SVG <image href>. Mantén pequeños los recursos incrustados (menos de ~10 KB es una buena regla) porque Base64 añade ~33% de sobrecarga y los bytes incrustados se vuelven a descargar en cada carga de página en lugar de almacenarse en caché por separado. Para el sentido inverso, pega un URI data: completo en el panel de decodificación — el prefijo data:...;base64, inicial se elimina automáticamente antes de decodificar.
¿Por qué mi Base64 MIME o PEM tiene saltos de línea, y cómo los manejo?
MIME (RFC 2045) obliga a ajustar Base64 a 76 caracteres por línea, y PEM (RFC 7468) ajusta los cuerpos de claves y certificados a 64 caracteres entre los marcadores -----BEGIN----- y -----END-----. Esos saltos de línea son espacio en blanco Base64 legal, no datos — un decodificador correcto debe ignorarlos. Esta herramienta elimina todos los espacios en blanco antes de decodificar, así que el Base64 ajustado de MIME, PEM y correo electrónico se decodifica limpiamente. Cuando necesites producir salida ajustada tú mismo (para una parte de correo o un bloque PEM), activa "Ajustar líneas a 76 caracteres" al codificar; ten en cuenta que la salida segura para URL nunca se ajusta, ya que los saltos de línea son ilegales en URLs y tokens. Si un analizador de terceros rechaza tu cadena ajustada, probablemente esté en modo estricto (no MIME) — aliméntalo con una sola línea sin ajustar.
Características Principales
- Codificar texto a formato Base64 instantáneamente
- Decodificar cadenas Base64 de vuelta a texto original
- Soporte para múltiples conjuntos de caracteres (UTF-8, ASCII, UTF-16, ISO-8859-1)
- Opción de codificación Base64 segura URL
- Manejo automático de espacios en blanco y relleno
- Estadísticas de comparación de tamaño en tiempo real
- Intercambiar entre modos codificar y decodificar con un clic
- Copiar texto codificado/decodificado al portapapeles
- Descargar resultados como archivos de texto
- Cargar archivos de texto para codificar/decodificar
- Soporte de modo oscuro
- Procesamiento 100% del lado del cliente
- Codifica archivos de hasta 10 MB
- Genera URIs data: listos para pegar para imágenes y archivos
- Ajuste opcional de líneas a 76 caracteres para salida MIME y PEM
- Funciona sin conexión
- Diseño responsivo compatible con móviles
- Mensajes de error claros para entrada Base64 inválida
- Soporte para caracteres Unicode y emoji
- Sin registro requerido
