Codificar y decodificar Base64

Codifica texto en Base64 o decodifica Base64 a texto con soporte completo de UTF-8. Acepta Base64url, segmentos de JWT y bloques MIME de correo, y avisa si el contenido es binario.

El resultado aparecerá aquí.

Cómo funciona Codificar y decodificar Base64

Codifica texto en Base64 o decodifica Base64 a texto con soporte completo de UTF-8. Acepta Base64url, segmentos de JWT y bloques MIME de correo, y avisa si el contenido es binario.

Entrada Texto / Base64
Salida Texto codificado o decodificado
Trabajos realizados 5.034

Herramientas relacionadas

Guía de uso

Con esta herramienta puedes decodificar Base64 para recuperar el texto original o convertir cualquier texto en una cadena Base64. Trabaja con UTF-8, así que la ñ, las tildes y los emojis se conservan sin errores. Al decodificar acepta también la variante segura para URL (Base64url) y los bloques MIME divididos en líneas que aparecen en el código fuente de un correo. El modo automático elige la dirección por ti.

Cómo usar la herramienta paso a paso

  1. Pega en el campo de entrada el texto que quieres codificar o la cadena Base64 que quieres decodificar.
  2. Elige el modo: automático, codificar o decodificar.
  3. Pulsa el botón de ejecutar o usa Ctrl + Enter (Cmd + Enter en macOS).
  4. Revisa la salida; si aparece un mensaje de error, consulta la lista de errores más abajo.
  5. Copia el resultado o descárgalo como archivo de texto.

El modo automático y cuándo conviene elegir a mano

En modo automático la herramienta solo decodifica si la entrada parece Base64 de verdad: sin espacios, con una longitud múltiplo de 4, con caracteres del alfabeto estándar y con un resultado que sea texto UTF-8 legible. Si falla cualquiera de esas condiciones, codifica. Gracias a eso, una palabra como "hola" no se interpreta por error como Base64.

Hay dos casos en los que conviene elegir el modo tú mismo. El primero son las cadenas cortas que resultan válidas por casualidad: QUFB podría ser una referencia de producto y, sin embargo, se decodifica como AAA. El segundo son las cadenas Base64url, como los segmentos de un JWT, que contienen - o _ o no llevan relleno: el modo automático las toma por texto y las vuelve a codificar. Selecciona "decodificar" y se procesan sin problema.

Por qué el resultado ocupa más y qué significan los =

Base64 convierte cada grupo de 3 bytes en 4 caracteres, de modo que la salida ocupa aproximadamente un tercio más que la entrada. Si el número de bytes no es múltiplo de 3, el último grupo se completa con =: dos signos cuando sobra un byte y uno cuando sobran dos. En UTF-8, la ñ y las vocales con tilde ocupan 2 bytes, por eso una palabra corta en español puede generar una cadena más larga de lo esperado.

TextoBytes UTF-8Base64
Hola4SG9sYQ==
ñ2w7E=
año4YcOxbw==
hola mundo10aG9sYSBtdW5kbw==
Man3TWFu (sin relleno)

Si a la cadena le falta el relleno, no pasa nada: la herramienta lo calcula a partir de la longitud. En cambio, un relleno de más, como en SGVsbG8==, se rechaza por longitud no válida.

Dónde te vas a encontrar Base64

  • Adjuntos de correo: el código fuente de un mensaje guarda los adjuntos en bloques MIME de 76 caracteres por línea. Los saltos de línea se ignoran al decodificar, así que puedes pegar el bloque tal cual.
  • Cabeceras HTTP: Authorization: Basic dXNlcjpwYXNz no es más que user:pass codificado. Cualquiera que vea la cabecera puede leer la contraseña, de ahí que la autenticación básica solo tenga sentido con HTTPS.
  • Tokens JWT: son tres segmentos Base64url separados por puntos. El punto no pertenece al alfabeto, así que decodifica la cabecera o el contenido por separado. Por ejemplo, eyJzdWIiOiI0MiIsIm5hbWUiOiJMdWPDrWEiLCJyb2xlIjoiZWRpdG9yIn0 se convierte en {"sub":"42","name":"Lucía","role":"editor"}. Para leer un contenido largo, pásalo después por el formateador JSON. Leer un token no significa que sea auténtico: eso solo lo demuestra la verificación de la firma.
  • Imágenes incrustadas: los data URI de CSS y HTML empiezan por data:image/png;base64,. Quita ese prefijo antes de pegar; aun así, una imagen es binaria y la herramienta avisará de que no es texto.
  • Codificación para URL: la salida al codificar usa siempre el alfabeto estándar con relleno. Si necesitas Base64url, cambia + por -, / por _ y elimina los = finales.

Mensajes de error al decodificar Base64

  • Invalid Base64: only A-Z, a-z, 0-9, +, /, - , _ and = padding are allowed. Hay un carácter que no pertenece al alfabeto: el prefijo de un data URI, los puntos de un JWT completo o unas comillas copiadas junto al valor.
  • Invalid Base64: the length is not valid. La cadena está incompleta o lleva signos = de más. Vuelve a copiarla desde el origen.
  • The decoded data is not UTF-8 text (it may be a binary file). Lo decodificado no es texto. Una cadena que empieza por /9j/ es un JPEG, iVBORw0KGgo indica un PNG y JVBERi0 un PDF. También ocurre con texto antiguo guardado en Latin-1: "ñandú" codificado así da 8WFuZPo=, que no es UTF-8 válido. La herramienta prefiere avisar antes que mostrar caracteres rotos.

Base64 no cifra nada

Base64 es una codificación reversible, sin clave ni secreto. Sirve para transportar datos binarios por canales que solo admiten texto, como el correo, un campo JSON o una cabecera HTTP, pero no protege una contraseña ni una clave de API. Si quieres entender mejor su origen y sus usos, lee qué es Base64.

Todo el proceso ocurre con JavaScript en tu navegador: el texto que pegas no se envía al servidor y la página solo registra un contador de uso anónimo. Para cadenas con secuencias como %C3%B1, usa la herramienta para codificar y decodificar URL; encontrarás más utilidades en herramientas para desarrolladores.

Preguntas frecuentes

Pega la cadena en el campo de entrada, deja el modo en automático o cámbialo a decodificar y ejecuta la herramienta. El texto original aparece en la salida, listo para copiar. Si la cadena proviene de un token JWT, de una URL o de una clave de API, elige decodificar de forma explícita, porque la variante Base64url no siempre supera la detección automática. Si recibes un aviso de que no es texto, lo más probable es que contenga una imagen o un archivo.

Normalmente porque el texto original no estaba en UTF-8 cuando se codificó, por ejemplo en Latin-1 o en una página de códigos de Windows. Esta herramienta decodifica de forma estricta en UTF-8 y, en lugar de mostrar símbolos rotos en la ñ o las tildes, avisa de que el resultado no es texto UTF-8. El mismo aviso aparece si el contenido estaba comprimido o cifrado antes de pasar a Base64. La solución está en el sistema que generó la cadena.

No. Cualquiera puede revertir una cadena Base64 en segundos, porque no hay ninguna clave de por medio. Para almacenar contraseñas se usan funciones de hash lentas y con sal, como bcrypt, scrypt o Argon2, y para transmitirlas, una conexión HTTPS. Base64 es útil para mover datos binarios dentro de formatos de texto, pero no aporta ninguna confidencialidad; tratar una cadena Base64 como si fuera secreta es un error de seguridad frecuente.

No. La herramienta trabaja con texto: codifica lo que escribes o pegas y decodifica cadenas que dan como resultado texto legible. No tiene opción para subir archivos y, si decodificas una cadena que contiene una imagen, mostrará un aviso de que los datos son binarios. Para incrustar imágenes en CSS o HTML necesitas una utilidad que lea el archivo; recuerda además que el tamaño crece alrededor de un 33 por ciento.

Codifican los mismos datos y solo cambian dos caracteres y el relleno. El alfabeto estándar usa + y /, que tienen un significado especial en las direcciones web; Base64url los sustituye por - y _ y suele omitir los signos = finales. Lo verás en tokens JWT, en parámetros de URL y en algunas claves de API. Esta herramienta acepta ambas variantes al decodificar y produce la estándar al codificar.