Codificador Decodificador Base64 - Herramienta Gratuita de Conversión Base64 en Línea
Herramienta gratuita de codificación y decodificación base64. Convierta texto a Base64 o decodifique cadenas Base64 al instante. Admite codificación estándar y segura para URL. No se requiere inicio de sesión.
Codificador/Decodificador Base64
Convertir texto desde y hacia codificación Base64
Documentación
¿Qué es la codificación Base64?
Base64 es una forma de convertir cualquier tipo de datos, incluidos los datos binarios, como las imágenes, en texto plano compuesto únicamente por letras, dígitos y algunos símbolos. Un codificador Base64 convierte los datos a este formato de texto. Un decodificador Base64 los devuelve a su formato original. Los programas usan Base64 para transferir datos binarios de forma segura mediante sistemas como el correo electrónico o JSON, que esperan texto plano.
Base64 utiliza un alfabeto de 64 caracteres:
- Letras mayúsculas A–Z (26 caracteres)
- Letras minúsculas a–z (26 caracteres)
- Dígitos 0–9 (10 caracteres)
- Dos símbolos, normalmente
+y/(2 caracteres)
Algunos sistemas también usan un signo igual (=) al final de la salida como relleno. El relleno no forma parte del alfabeto de 64 caracteres; simplemente completa la longitud.
Por qué existe Base64
Muchos protocolos de texto antiguos, incluido el correo electrónico (SMTP) y algunas partes de HTTP, se diseñaron para transportar texto ASCII de 7 bits. Pueden corromper bytes binarios sin procesar, como los bytes que contiene una imagen JPEG. Base64 evita este problema al representar cada byte usando únicamente caracteres seguros e imprimibles. Por eso los archivos adjuntos de correo electrónico, las imágenes incrustadas en páginas web y los campos binarios dentro de JSON suelen pasar primero por Base64.
Base64 no es compresión ni cifrado. La salida codificada siempre es más grande que la entrada, y cualquiera puede decodificarla sin contraseña ni clave.
Cómo usar esta herramienta
- Escriba o pegue texto en el cuadro de entrada.
- Elija «Codificar en Base64» para convertir texto a Base64, o «Decodificar desde Base64» para convertir una cadena Base64 de nuevo en texto.
- Active la conversión en tiempo real para que la salida se actualice automáticamente mientras escribe.
- Copie el resultado con el botón de copiar.
La herramienta lee y escribe texto Unicode estándar, por lo que codifica y decodifica correctamente las letras acentuadas, los símbolos y los emojis, no solo las letras básicas del inglés.
Cómo funciona la codificación Base64
Base64 convierte cada 3 bytes de entrada (24 bits) en 4 caracteres de salida (cada uno contiene 6 bits), porque 24 dividido entre 6 es igual a 4.
- Tome los bytes de entrada y escríbalos en formato binario.
- Agrupe los bits en bloques de 24 bits (3 bytes).
- Divida cada bloque de 24 bits en cuatro partes de 6 bits.
- Busque cada número de 6 bits (de 0 a 63) en el alfabeto Base64 y anote el carácter correspondiente.
Si la longitud de la entrada no es múltiplo de 3, el último bloque queda incompleto. El codificador lo rellena con bits cero y después añade caracteres = a la salida para que el resultado siga apareciendo en grupos de 4:
- Un byte restante produce 2 caracteres Base64 más
==. - Dos bytes restantes producen 3 caracteres Base64 más un
=.
Ejemplo de codificación Base64
Codificación de la palabra «Hello»:
- Valores ASCII: 72, 101, 108, 108, 111
- Binario:
01001000 01100101 01101100 01101100 01101111 - Los primeros 3 bytes (24 bits) se dividen en cuatro grupos de 6 bits:
010010 000110 010101 101100, que corresponden a los números 18, 6, 21, 44 → caracteresS,G,V,s. - Los 2 bytes restantes (16 bits) se dividen en tres grupos de 6 bits, con 2 bits cero añadidos al final:
011011 000110 111100, que corresponden a los números 27, 6, 60 → caracteresb,G,8. - Como quedaban 2 bytes, se añade un
=al final. - Resultado:
SGVsbG8=
La decodificación invierte estos pasos: cada carácter se convierte de nuevo en su número de 6 bits, los bits se unen en una secuencia y esa secuencia se vuelve a leer en bytes de 8 bits.
Fórmula de la longitud codificada en Base64
Para una entrada de n bytes, la longitud codificada en caracteres es:
encoded_length = 4 × ⌈n / 3⌉
donde ⌈x⌉ significa redondear hacia arriba al número entero más cercano. Esta fórmula muestra por qué la salida Base64 siempre es aproximadamente un tercio más grande que la entrada: 4 caracteres de salida por cada 3 bytes de entrada representan un aumento del 33 %.
Dónde se utiliza Base64
- Archivos adjuntos de correo electrónico (MIME). El correo electrónico se diseñó para texto, por lo que los archivos adjuntos se convierten a Base64 antes de enviarse, lo que hace que el archivo adjunto sea aproximadamente un 33 % más grande que el original.
- URI de datos. Las imágenes pequeñas pueden incrustarse directamente en HTML o CSS como texto, por ejemplo
data:image/png;base64,iVBORw0KGgo..., evitando una solicitud de archivo independiente. Esto funciona mejor con archivos pequeños, ya que los grandes aumentan excesivamente el tamaño de la página y no se pueden almacenar en caché por separado. - API y JSON. JSON no tiene una forma nativa de contener datos binarios sin procesar, por lo que los archivos binarios enviados mediante una API JSON suelen codificarse primero en Base64.
- Autenticación básica de HTTP. El encabezado
Authorizationcodifica un nombre de usuario y una contraseña como Base64, por ejemploAuthorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Esto no es seguro por sí solo; cualquiera que intercepte las credenciales puede leerlas, por lo que la autenticación básica solo debe usarse mediante HTTPS. - Tokens web JSON (JWT). Cada una de las tres partes de un JWT se codifica con Base64URL, una variante segura para colocar dentro de una URL.
- Almacenamiento de datos binarios como texto. Las bases de datos o los archivos de configuración que solo aceptan texto a veces almacenan datos binarios como una cadena Base64.
Base64 en comparación con otras codificaciones
Base64 segura para URL reemplaza los caracteres estándar + y / por - y _, porque + y / tienen un significado especial dentro de una URL. Se utiliza para JWT, parámetros de consulta de URL y nombres de archivo. Esta herramienta produce una salida Base64 estándar; convertirla al formato seguro para URL solo requiere intercambiar esos dos caracteres.
Base32 utiliza un alfabeto de 32 caracteres, por lo que cada carácter contiene 5 bits en lugar de 6. Convierte cada 5 bytes en 8 caracteres, con una sobrecarga del 60 % (8 ÷ 5 = 1,6), frente al 33 % de Base64. Base32 se elige cuando la salida debe escribirse a mano o leerse por teléfono, porque evita las combinaciones de letras mayúsculas y minúsculas y los caracteres que se confunden fácilmente.
Hexadecimal utiliza 16 caracteres (0–9, A–F) y necesita 2 caracteres por byte, lo que duplica el tamaño (100 % de sobrecarga). Es habitual para mostrar hashes, colores y direcciones MAC, donde la legibilidad importa más que el tamaño compacto.
Cuándo no utilizar Base64
Base64 aumenta el tamaño y el consumo de CPU, por lo que no es una buena opción para archivos grandes enviados a través de una red; enviar directamente los datos binarios sin procesar es más pequeño y rápido. Nunca debe utilizarse para ocultar información confidencial, como contraseñas o claves de API, ya que no se necesita ningún secreto para decodificarla. Para almacenar archivos grandes, normalmente es preferible el tipo de columna binaria de una base de datos o un servicio de almacenamiento de archivos a una cadena Base64 larga en un campo de texto.
Errores frecuentes
- Omitir la conversión a UTF-8. Codificar texto con letras acentuadas o emojis sin convertirlo primero en bytes UTF-8 puede corromper la salida.
- Eliminar el relleno. Algunos sistemas eliminan los caracteres
=finales. La mayoría de los decodificadores aún puede funcionar si se vuelve a completar la longitud de la cadena hasta un múltiplo de 4, pero no todos lo aceptan, por lo que es más seguro conservar el relleno. - Saltos de línea sobrantes. Los codificadores antiguos basados en MIME insertan un salto de línea cada 76 caracteres; la mayoría de los decodificadores modernos esperan una cadena continua sin ellos.
- Confundir las variantes. Base64 estándar y Base64 segura para URL utilizan caracteres diferentes para las mismas dos posiciones del alfabeto; decodificar con la variante incorrecta produce datos ilegibles o un error.
Preguntas frecuentes
¿Es Base64 una forma de cifrado? No. Es una codificación de texto reversible, no un cifrado. Cualquiera puede decodificar al instante una cadena Base64 sin contraseña. Utilice un algoritmo de cifrado como AES si los datos deben permanecer secretos.
¿Por qué Base64 hace que los datos sean más grandes? Porque utiliza un carácter completo para transportar solo 6 bits, mientras que un byte sin procesar contiene 8 bits. Convertir 3 bytes (24 bits) en 4 caracteres significa que la salida es 4/3, es decir, aproximadamente un 33 % más grande que la entrada.
¿Puede Base64 codificar imágenes y otros archivos binarios? Sí. Cualquier archivo binario, incluidas imágenes, archivos PDF y audio, puede codificarse en Base64 y decodificarse de nuevo byte por byte. Se utiliza habitualmente para imágenes pequeñas incrustadas en HTML o CSS, pero es una mala opción para archivos grandes.
¿Cuál es la diferencia entre Base64 y Base64URL? Base64URL sustituye los caracteres estándar + y / por - y _, de modo que el resultado se puede colocar de forma segura dentro de una URL o un nombre de archivo sin escapes adicionales. Los JWT utilizan Base64URL por este motivo.
¿Por qué mi cadena Base64 muestra un error de «inválido» al decodificarla? Las causas más comunes son caracteres que no pertenecen al alfabeto Base64, como - y _, utilizados por la variante segura para URL, o una cadena cuya longitud es uno más que un múltiplo de 4. Ninguna cadena Base64 válida tiene esa longitud. La decodificación también falla cuando los bytes decodificados no son texto UTF-8 válido. Esta herramienta ignora los espacios y los saltos de línea dentro de la cadena, y también decodifica una cadena cuyo relleno final = se haya eliminado.
¿De dónde procede Base64? La técnica se remonta a los primeros métodos para enviar datos binarios mediante sistemas de correo que solo admitían texto en la década de 1980, y se estandarizó formalmente como parte de MIME en RFC 2045 en 1996. La especificación de referencia actual para Base64, Base32 y Base16 es RFC 4648.