Acerca de Codificador y decodificador Base64
Base64 escribe bytes cualesquiera con 64 caracteres imprimibles (A–Z, a–z, 0–9, + y /), de modo que los datos binarios puedan viajar por canales que solo admiten texto: documentos JSON y XML, correo electrónico, encabezados HTTP, variables de entorno o URL data: en HTML y CSS. Cada 3 bytes se convierten en 4 caracteres, así que la forma codificada ocupa alrededor de un tercio más que el original.
Esta herramienta convierte texto (codificado como UTF-8) y archivos a Base64, y viceversa. Admite la variante segura para URL conocida como Base64url, el relleno opcional y el corte de líneas al estilo MIME, y entiende las URL data:. Al decodificar, el texto legible se muestra al instante; todo lo demás se ofrece como archivo, con el tipo detectado a partir de los datos cuando es posible.
La conversión se hace por completo en tu navegador. Los archivos se leen en tu dispositivo y no se sube nada.
Cómo se usa
- En “Dirección”, elige “Codificar” o “Decodificar”.
- Para codificar, elige “Texto” y escribe o pega en “Texto para codificar”, o elige “Archivo” y selecciona un archivo de hasta 25 MB. Marca “Añadir el prefijo de URL data:” para obtener una URL data: lista para usar.
- Ajusta las opciones si hace falta: “Alfabeto seguro para URL (- y _)”, “Relleno (=)” y “Cortar las líneas cada 76 caracteres”.
- Para decodificar, pega en el cuadro el Base64 o una URL data: completa, o usa “Abrir un archivo de texto”. El texto UTF-8 legible aparece en “Texto decodificado”; los demás datos aparecen en “Archivo decodificado” con su tamaño, su tipo y una vista previa en hex.
- Usa “Copiar resultado” o “Copiar texto”, “Descargar .txt” o “Descargar archivo” para quedarte con el resultado, “Intercambiar” para pasarlo a la dirección contraria y “Borrar” para empezar de nuevo.
Funciones
- Texto y archivos: El texto se convierte como UTF-8, así que funcionan los acentos, los alfabetos no latinos y los emojis. Se admiten archivos de cualquier tipo de hasta 25 MB, sin los problemas de tamaño y de Unicode de la función btoa del navegador.
- Base64 estándar y seguro para URL: Genera cualquiera de los dos alfabetos, con o sin relleno =. El decodificador acepta los dos alfabetos, el relleno ausente, los espacios y los saltos de línea.
- Validación clara: Las entradas no válidas se explican con precisión: qué carácter no está permitido y en qué posición, una longitud que no puede ser Base64 válido o un relleno en el lugar equivocado.
- URL data: en ambas direcciones: Convierte un archivo en una URL data: que usa su tipo MIME, o pega una URL data: para decodificarla con el tipo que declara.
- Resultado como texto o como archivo: Los bytes decodificados que son UTF-8 válido se muestran como texto. Los demás datos se ofrecen para descargar: PNG, JPEG, GIF, WebP, PDF y ZIP se reconocen por sus primeros bytes, las imágenes se previsualizan cuando es posible y se muestra un volcado hex de los primeros 64 bytes.
Ejemplos
Crear un encabezado de autenticación Basic
Al codificar el texto user:pa55word se obtiene dXNlcjpwYTU1d29yZA==, que va en el encabezado Authorization: Basic dXNlcjpwYTU1d29yZA==. Recuerda que cualquiera que vea el encabezado puede volver a decodificarlo.
Leer el payload de un JSON Web Token
La parte central de un JWT es Base64url sin relleno. Al decodificar eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSJ9 se ve {"sub":"1234567890","name":"Ada Lovelace"}. Decodificar no verifica la firma del token.
Incrustar un icono pequeño en CSS
Elige “Archivo”, selecciona un PNG pequeño y marca “Añadir el prefijo de URL data:”. El resultado empieza por data:image/png;base64, y se puede usar directamente en background-image: url(…) o en el atributo src de una etiqueta <img>.
Guardar un archivo que devuelve una API
Algunas API devuelven documentos como una cadena Base64 dentro de un JSON. Pega la cadena en el modo “Decodificar”: si es un PDF, la herramienta detecta application/pdf y “Descargar archivo” lo guarda como decoded.pdf.
Limitaciones y notas
- Se pueden codificar archivos de hasta 25 MB y abrir archivos de texto de hasta 40 MB para decodificarlos. Los resultados muy largos se muestran como vista previa en el cuadro; Copiar y Descargar siempre usan el resultado completo.
- Los tipos de archivo solo se reconocen por su contenido en el caso de PNG, JPEG, GIF, WebP, PDF y ZIP. Los demás datos binarios se guardan como archivo .bin, salvo que una URL data: indique su tipo.
- El texto siempre se trata como UTF-8. El Base64 de un texto en otra codificación, como UTF-16 o Windows-1252, no se muestra como texto, sino que se ofrece como archivo.
- El navegador convierte a LF los saltos de línea que escribes o pegas en un cuadro de texto, así que un texto con finales de línea de Windows (CRLF) se codifica con LF. Codifica el propio archivo si los bytes exactos importan.
- La salida con líneas cortadas usa saltos de línea LF. El MIME estricto usa CRLF, pero los decodificadores (este incluido) aceptan ambos.
- Base64 es una codificación, no un cifrado: no protege los datos y cualquiera puede decodificarlos.
Preguntas frecuentes
¿Base64 es una forma de cifrado?
No. Base64 solo cambia la forma de escribir los bytes, y para decodificarlo no hace falta ninguna clave. Úsalo para transportar datos por canales de solo texto, nunca para ocultar contraseñas u otros secretos.
¿Por qué el Base64 suele terminar en = o ==?
Base64 trabaja en grupos de 3 bytes. Cuando la longitud de la entrada no es múltiplo de 3, el último grupo se completa con uno o dos signos = para que la longitud del texto sea múltiplo de 4. Muchos formatos, como los JWT, omiten el relleno; este decodificador acepta las dos formas.
¿Qué diferencia hay entre Base64 y Base64url?
Base64url (RFC 4648, sección 5) sustituye + por - y / por _ para que el texto se pueda usar en URL y nombres de archivo sin escaparlo. Aparte de esos dos caracteres (y de que normalmente no lleva relleno), la codificación es idéntica.
¿Por qué aparece “Longitud no válida” al decodificar?
Un texto Base64 sin relleno nunca puede tener una longitud de 4n + 1 caracteres, porque un carácter solo contiene 6 bits, que no bastan para un byte entero. Normalmente significa que el texto se cortó o que se añadió un carácter al copiarlo.
¿Por qué el texto Base64 ocupa más que mi archivo?
Cada 3 bytes se escriben como 4 caracteres, así que el texto codificado ocupa alrededor de un 33 % más que el original (más los saltos de línea si el corte de líneas está activado). Es el precio de usar solo caracteres imprimibles y seguros.
¿Se suben mis archivos o mi texto?
No. La codificación y la decodificación las hace JavaScript en esta página, y los archivos se leen en local. No se envía nada a ningún servidor.