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 grupo de 3 bytes de entrada (24 bits) en 4 caracteres de salida (cada uno con 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 HTTP. El encabezado
Authorizationcodifica un nombre de usuario y una contraseña en 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 sobre HTTPS. - JSON Web Tokens (JWT). Un JWT se compone de partes separadas por puntos, y cada parte 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 de correo MIME dividen la salida en líneas de no más de 76 caracteres. Según la RFC 4648, un decodificador puede rechazar los saltos de línea y otros caracteres ajenos al alfabeto, por lo que conviene eliminarlos antes de decodificar.
- 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
¿Base64 es una forma de cifrado? No. Es una codificación de texto reversible, no un cifrado. Cualquiera puede decodificar una cadena Base64 al instante sin contraseña. Si los datos deben mantenerse en secreto, se usa un algoritmo de cifrado como AES.
¿Por qué Base64 hace que los datos ocupen más? Porque gasta un carácter completo para llevar 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 mayor que la entrada, es decir, un 33 % más grande aproximadamente.
¿Se pueden codificar imágenes y otros archivos binarios con Base64? Sí. Cualquier archivo binario, incluidos imágenes, PDF y audio, se puede codificar en Base64 y decodificar de nuevo byte por byte. Se usa con frecuencia para imágenes pequeñas incrustadas en HTML o CSS, pero no es una buena 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 es seguro para colocar dentro de una URL o un nombre de archivo sin escapes adicionales. Los JWT usan Base64URL por este motivo.
¿Por qué mi cadena Base64 da un error de «no válida» al decodificar?
Las causas más comunes son que falte el relleno =, que haya espacios en blanco o saltos de línea sueltos en la cadena, o que haya caracteres que no pertenecen al alfabeto Base64, como usar + y / cuando la cadena se codificó con la variante segura para URL.
¿De dónde viene Base64? Base64 se estandarizó para el correo electrónico como parte de MIME en la RFC 2045, publicada en noviembre de 1996. La especificación de referencia actual de Base64, Base32 y Base16 es la RFC 4648, publicada en octubre de 2006.
Referencias
- Internet Engineering Task Force. RFC 4648: The Base16, Base32, and Base64 Data Encodings. RFC 4648 — grupos de 24 bits a 4 caracteres, reglas de relleno con
=, el alfabeto seguro para URL y los grupos de 40 bits de Base32. - Internet Engineering Task Force. RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One. RFC 2045 — Base64 en el correo electrónico MIME y el límite de 76 caracteres por línea.
- Internet Engineering Task Force. RFC 7617: The 'Basic' HTTP Authentication Scheme. RFC 7617 — la autenticación básica codifica las credenciales con Base64 y no es segura sin TLS.
- Internet Engineering Task Force. RFC 7519: JSON Web Token (JWT). RFC 7519 — cada parte de un JWT está codificada en Base64URL.