Acerca de esta herramienta
Este codificador / descodificador Base64 gratuito convierte texto a y desde Base64. Es seguro con UTF-8, de modo que los emoji, las letras acentuadas, el chino, el japonés, el coreano, el árabe y el cirílico sobreviven intactos a la ida y la vuelta, algo que no puede decirse de una cantidad sorprendente de herramientas Base64.
Todo se ejecuta en su navegador. Nada de lo que pegue se sube, se registra ni lo ve nadie. Aquí eso importa más que en otras herramientas: la gente pega claves de API, tokens y fragmentos de configuración en conversores Base64 a todas horas.
Qué es realmente Base64
Base64 no es cifrado. Tampoco es compresión. Es una forma de reescribir *cualquier* dato usando solo 64 caracteres que se pueden enviar sin riesgo casi a cualquier parte: A–Z, a–z, 0–9, + y /, con = como relleno al final.
Su razón de ser es histórica y sigue vigente. Muchos sistemas se construyeron para transportar texto, no bytes arbitrarios: cuerpos de correo, cadenas JSON, atributos XML, cabeceras HTTP, URL, variables de entorno. Déles un byte en crudo como 0x00 o 0x1B y algo en el camino lo estropeará, lo eliminará o rechazará el mensaje. Base64 esquiva todo el problema convirtiendo esos bytes en letras y dígitos corrientes a los que nadie pone objeción.
El mecanismo es sencillo: Base64 toma sus datos de 3 en 3 bytes (24 bits) y los reescribe como 4 caracteres (6 bits cada uno). Esa proporción es la razón de que la salida Base64 sea siempre un 33 % mayor que la entrada. Cuando los datos no se dividen exactamente entre 3, el último grupo se rellena con uno o dos =.
Base64 no es un secreto
Conviene decirlo sin rodeos, porque provoca incidentes de seguridad reales.
Cualquiera puede descodificar Base64. No hay clave, ni contraseña, ni secreto. Esta misma página lo descodificará en un instante, y también lo hará cualquier desarrollador, cualquier analizador de registros y cualquier atacante que lo encuentre. cGFzc3dvcmQxMjM= no es una contraseña oculta: es la palabra password123 con un disfraz muy fino.
Así que Base64 sirve para el transporte. No es, ni ha sido nunca, una forma de proteger nada. Si algo debe permanecer ilegible, necesita cifrado de verdad. Que un valor *parezca* revuelto no significa que *esté* protegido.
Esto también funciona al revés, y resulta útil: si encuentra una larga secuencia de letras y dígitos terminada en = en un registro, una configuración o una URL, es muy probable que sea Base64, y puede sencillamente leerlo.
Dónde se lo encontrará
- Data-URL — data:image/png;base64,iVBORw0KGgo… incrusta una imagen directamente en HTML o CSS, sin fichero aparte
- Autenticación HTTP Basic — la cabecera Authorization es literalmente usuario:contraseña en Base64, que es exactamente por lo que Basic Auth sin HTTPS es inseguro
- JSON Web Tokens — un JWT son tres bloques Base64url unidos por puntos; los dos primeros son JSON perfectamente legible
- Adjuntos de correo — MIME lleva décadas transportando ficheros binarios en Base64 a través de sistemas solo de texto
- Ficheros de configuración y secretos — los secretos de Kubernetes, los ficheros .env y las variables de CI guardan a menudo valores en Base64, otra vez por transporte y no por seguridad
- API — cualquier campo que deba llevar datos binarios dentro de una cadena JSON
UTF-8, y por qué algunas herramientas fallan
Base64 codifica bytes, no caracteres. Antes de poder codificar nada hay que convertir el texto en bytes, y es ahí donde las herramientas se rompen en silencio.
El fallo clásico consiste en usar una conversión de un byte por carácter sobre texto que contiene algo fuera del ASCII puro. Pegue café, 日本語 o un emoji en una herramienta escrita así y obtendrá un error o, peor, una salida corrompida en silencio que vuelve como galimatías.
Esta herramienta convierte primero su texto a UTF-8, la codificación que la web usa realmente. é, →, 🎉 y 한국어 se codifican y descodifican exactamente como los escribió.
Base64 estándar y Base64url
Hay dos variantes, y confundirlas es una causa frecuente de errores del tipo «no es Base64 válido».
El Base64 estándar usa + y / como sus dos últimos caracteres. Es lo que produce esta herramienta y lo que espera casi todo.
El Base64url los cambia por - y _ y suele eliminar el relleno =. Existe porque + y / tienen significado propio dentro de una URL y de una ruta de fichero, de modo que habría que escaparlos. Los JWT usan Base64url, igual que muchas API que colocan valores codificados en una ruta o en una cadena de consulta.
Si una descodificación falla con una cadena llena de - y _, esa es la razón. Cambiarlos de nuevo por + y / suele arreglarlo.
Cómo usarla
- Pegue su texto (o el Base64) en el campo
- Codifique o Descodifique con los botones
- Intercambie para llevar el resultado a la entrada e ir en el otro sentido
- Copie el resultado
Conviene saber
- La salida Base64 es ~33 % mayor que la entrada. Una imagen de 3 MB se convierte en unos 4 MB como data-URL, algo que conviene recordar antes de incrustar ficheros grandes.
- Los espacios en blanco suelen ser inofensivos. Muchos sistemas parten el Base64 a 76 caracteres por línea; los descodificadores normalmente ignoran los saltos.
- El = solo aparece al final, nunca en medio. Uno o dos, jamás tres.
- La longitud siempre es múltiplo de 4 una vez incluido el relleno. Si la suya no lo es, algo se ha truncado.
- Descodificar binario arbitrario a texto parecerá un sinsentido. Si descodifica un PNG obtiene bytes, no palabras: eso es correcto, no un fallo.
Preguntas frecuentes
¿Base64 es cifrado?
No, y esto es lo más importante que hay que saber. Base64 no tiene clave ni secreto. Cualquiera que vea la cadena puede descodificarla en un paso, incluida esta página. Es una codificación para transporte seguro, no una protección. Nunca la use para ocultar una contraseña, un token o cualquier otra cosa que importe.
¿Por qué mi Base64 termina en uno o dos signos igual?
Es el relleno. Base64 trabaja con grupos de 3 bytes que se convierten en 4 caracteres. Cuando sus datos no se dividen exactamente entre 3, el último grupo queda corto y se rellena con = para que la longitud total siga siendo múltiplo de 4. Un byte sobrante da ==, dos bytes dan =, y un múltiplo exacto no da relleno alguno.
¿Por qué mi cadena Base64 es más larga que el original?
Porque cada 3 bytes se convierten en 4 caracteres, así que la salida siempre es un 33 % mayor que la entrada, más hasta dos caracteres de relleno. Es inevitable y es el precio de hacer que datos arbitrarios quepan sin riesgo en un campo de texto. Si el tamaño importa, comprima los datos antes de codificarlos, no después.
¿Puedo codificar una imagen o un PDF en Base64?
Sí, y es un uso habitual: así es como las data-URL incrustan imágenes en HTML y CSS. Esta herramienta en concreto trabaja sobre texto pegado, de modo que encaja con tokens, JSON, valores de configuración y cadenas Base64 existentes. Recuerde el aumento del 33 % antes de incrustar algo grande.
¿Por qué falla la descodificación con «no es Base64 válido»?
Las causas habituales son una cadena truncada, caracteres sueltos pegados junto a ella, o Base64url. Base64url usa - y _ donde el Base64 estándar usa + y /, y a menudo se le quita el relleno, así que un bloque de JWT pegado tal cual puede no descodificarse. Cambie - por + y _ por / e inténtelo de nuevo.
¿Se envía mi texto a un servidor?
No. Toda la conversión ocurre en su navegador usando sus funciones integradas. Nada se sube y nada se almacena, por lo que la herramienta sigue funcionando con la conexión apagada. Dada la frecuencia con que la gente pega credenciales en herramientas Base64, ese es justamente el objetivo.
Herramientas relacionadas
- Codificador / descodificador de URL — la otra codificación que aparece constantemente en URL y cadenas de consulta
- Descodificador JWT — lee por usted los bloques Base64url de un token, sin sustituciones manuales
- Generador de hash — MD5, SHA-1 y SHA-256 que, a diferencia de Base64, son de un solo sentido
- Imagen a Base64 — convertir un fichero de imagen real en una data-URL