Codificar / Decodificar Base64
Convierte texto a Base64 y decodifícalo de nuevo en tu navegador. Compatible con UTF-8 y con una variante URL-safe opcional: nada se sube nunca a un servidor.
Entrada
0 líneas · 0 caracteres
Modo
URL-safe
Cómo usar Codificar / Decodificar Base64
- 1
Elige Codificar o Decodificar
Pon el modo en Codificar para convertir texto en Base64, o en Decodificar para convertir una cadena Base64 de nuevo en texto legible.
- 2
Introduce tu entrada
Escribe o pega tu texto o Base64 en el panel de entrada y, si quieres, activa la opción URL-safe para el alfabeto compatible con URL y nombres de archivo.
- 3
Convierte
Haz clic en Convertir para procesar la entrada localmente en tu navegador, con soporte completo de UTF-8 y emojis.
- 4
Copia o intercambia
Copia el resultado, o usa Intercambiar para mover la salida de vuelta a la entrada e invertir el modo y hacer una conversión de ida y vuelta rápida.
La guía completa de la codificación Base64
Qué es realmente Base64
Base64 es un esquema de codificación de binario a texto: representa datos binarios arbitrarios usando únicamente 64 caracteres ASCII imprimibles que sobreviven a la transmisión a través de sistemas pensados para texto plano. El alfabeto estándar, definido en el RFC 4648, está formado por las 26 letras mayúsculas A-Z, las 26 letras minúsculas a-z, los diez dígitos 0-9 y los dos símbolos + y /. Son 64 símbolos, exactamente los suficientes para representar seis bits de datos por carácter, porque dos elevado a la sexta potencia es 64.
El nombre es literal. Igual que la base 10 usa diez símbolos de dígito y la base 16 (hexadecimal) usa dieciséis, la base 64 usa sesenta y cuatro. La codificación es completamente reversible y sin pérdidas: cualquier byte que codifiques vuelve idéntico byte a byte cuando lo descodificas, que es justamente el objetivo.
Por qué existe Base64
Muchos canales se diseñaron para transportar texto, no bytes en bruto, y estropean cualquier cosa que quede fuera del rango ASCII imprimible. El correo electrónico es el ejemplo clásico: el estándar SMTP original era un protocolo de siete bits que podía corromper o eliminar el bit más alto de los datos binarios, por lo que MIME usa Base64 para enviar imágenes y archivos adjuntos de forma segura. El mismo problema aparece siempre que algo binario tiene que viajar dentro de algo textual.
Te encuentras con Base64 constantemente sin darte cuenta. Las URIs de datos incrustan imágenes directamente en HTML y CSS como data:image/png;base64,iVBORw0K... de modo que un icono pequeño no necesita una petición aparte. Los JSON Web Tokens (JWT) son tres segmentos en Base64url unidos por puntos. La autenticación HTTP básica envía en Base64 la cadena username:password. Los navegadores la exponen a través de las funciones integradas btoa y atob, y es la forma estándar de meter cargas binarias dentro de JSON, XML o una URL.
Cómo funciona la correspondencia de 3 bytes a 4 caracteres
Base64 procesa la entrada de tres en tres bytes. Tres bytes son 24 bits, y 24 se divide exactamente en cuatro grupos de seis bits. Cada grupo de seis bits es un número del 0 al 63, que se convierte en un carácter del alfabeto. Así, cada 3 bytes de entrada producen siempre exactamente 4 caracteres de salida, y por eso Base64 infla los datos en aproximadamente un tercio: la forma codificada ocupa alrededor del 133% del tamaño original.
Lo que importa es la posición en el alfabeto. El índice 0 es A, el índice 25 es Z, el índice 26 es a, el índice 51 es z, el índice 52 es 0, el índice 61 es 9, el índice 62 es + y el índice 63 es /. Para leer a mano una cadena codificada, haces corresponder cada carácter con su índice, escribes ese índice como seis bits, concatenas todos los bits y vuelves a cortar el flujo en bytes de ocho bits.
Un ejemplo resuelto: codificar "Man"
Toma las tres letras M, a, n. Sus valores de byte ASCII son 77, 97 y 110, que en binario son 01001101, 01100001 y 01101110. Concatena esos 24 bits en un solo flujo: 010011010110000101101110. Ahora córtalo en cuatro grupos de seis bits: 010011, 010110, 000101, 101110.
Esos grupos son los números 19, 22, 5 y 46. Al buscar cada uno en el alfabeto obtenemos T (índice 19), W (índice 22), F (índice 5) y u (índice 46). Así que "Man" se codifica como "TWFu": una conversión limpia de tres bytes a cuatro caracteres sin necesidad de relleno. Descodificar simplemente ejecuta los pasos a la inversa.
El relleno y el signo igual
La entrada no siempre es un múltiplo de tres bytes, por lo que Base64 necesita una manera de señalar el resto. Cuando sobra un byte, se codifica como dos caracteres seguidos de dos marcas de relleno (==); cuando sobran dos bytes, se codifican como tres caracteres seguidos de una marca de relleno (=). El carácter de relleno no lleva datos; solo le indica al descodificador cuántos bytes reales representa el grupo final.
Por ejemplo, la única letra "M" (byte 77, binario 01001101) se rellena a seis bits como 010011 y 010000, dando T y Q, y luego se completa con == para formar "TQ==". La palabra "Ma" (dos bytes) se codifica como "TWE=" con un solo signo igual al final. Contar los signos igual al final de cualquier cadena Base64 te dice si la longitud original era un múltiplo de tres.
La variante apta para URL
Los caracteres estándar + y / resultan problemáticos en lugares donde ya tienen un significado. Una barra separa los segmentos de ruta en una URL, y un signo más se interpreta como un espacio en las cadenas de consulta codificadas como formulario, así que un valor Base64 normal puede romperse al colocarlo en un enlace o un nombre de archivo. El alfabeto apto para URL, también del RFC 4648, soluciona esto sustituyendo + por - (guion) y / por _ (guion bajo).
Activar la opción apta para URL en esta herramienta produce esa variante y además elimina el relleno final de =, ya que los signos igual también necesitan escaparse en las URLs. El resultado encaja directamente en los parámetros de consulta, los segmentos de ruta, las cookies y los nombres de archivo. Es la codificación que usan los JWT y muchas API web. Solo recuerda descodificar la entrada apta para URL con un descodificador apto para URL, porque los caracteres - y _ no son válidos en el alfabeto estándar.
Base64 es codificación, no cifrado
Este es el hecho más importante y más malentendido sobre Base64. La codificación oculta los datos solo a simple vista; no aporta ninguna confidencialidad. No hay clave ni secreto, así que cualquiera puede descodificar una cadena Base64 al instante con cualquier herramienta, incluida esta. Tratar Base64 como una forma de esconder contraseñas, claves de API o datos personales es un grave error de seguridad.
Base64 resuelve un problema de transporte, no un problema de secreto: hace que lo binario sea seguro para moverse a través de canales que solo admiten texto. Si necesitas una protección real, cifra los datos primero con un algoritmo de verdad como AES, y solo entonces codifica en Base64 el texto cifrado si además necesitas que viaje como texto. Codificar y cifrar son tareas distintas.
Errores comunes y consejos prácticos
El error más frecuente es la confusión de conjunto de caracteres. Base64 en sí solo conoce bytes, así que antes de poder codificar texto debes decidir cómo se convierte ese texto en bytes. Esta herramienta usa UTF-8, que es por lo que las letras acentuadas y los emoji se conservan en el viaje de ida y vuelta; codificar la misma cadena con otro conjunto de caracteres en otro sitio produce un Base64 diferente. Una segunda trampa habitual es el espacio en blanco: los saltos de línea que algunos codificadores insertan (MIME parte en 76 caracteres) no forman parte de los datos y deben eliminarse antes de descodificar, aunque los descodificadores estrictos pueden rechazarlos.
Otras trampas son mezclar el alfabeto estándar y el apto para URL, olvidar que una cadena sin relleno puede necesitar que se le restaure el relleno antes de que un descodificador estricto la acepte, y suponer que Base64 ahorra espacio: nunca lo hace, siempre hace crecer la carga en alrededor de un tercio. Cuando aquí falla una descodificación, comprueba primero si hay un espacio perdido, un signo igual que falta, o un - o _ que pertenece al alfabeto apto para URL.
Preguntas frecuentes
¿Cuál es aquí la diferencia entre Codificar y Decodificar?
¿Qué hace la opción URL-safe?
¿Funciona con emojis y caracteres que no son del inglés?
¿Qué ocurre si pego un Base64 no válido al decodificar?
¿Se envían mis datos a algún sitio?
Herramientas relacionadas
Sigue trabajando con estas prácticas herramientas