Codificar / decodificar Base64
Codifica y decodifica Base64, compatible con UTF-8 y con variante segura para URL.
Acerca de esta herramienta
Convierte texto a Base64 y viceversa. Procesa correctamente cualquier texto Unicode y admite el alfabeto seguro para URL (base64url) que usan los JWT y las URL.
Cómo se usa
- Elige Codificar para convertir texto en Base64, o Decodificar para convertir Base64 de nuevo en texto.
- Pega tu entrada. El texto Unicode, como tildes o emojis, se procesa correctamente.
- Para tokens y URL, activa Seguro para URL para usar - y _ en lugar de + y /.
- Copia el resultado o haz clic en Intercambiar para invertir la operación.
Preguntas
- ¿Base64 es cifrado?
- No. Base64 es una codificación que cualquiera puede revertir al instante. No la uses nunca para ocultar contraseñas ni secretos.
- ¿Qué diferencia hay entre Base64 y Base64url?
- Base64url sustituye + por - y / por _, y normalmente omite el relleno =, para que el resultado pueda usarse en URL y nombres de archivo. Los JWT usan Base64url.
- ¿Por qué falla la decodificación?
- O la entrada tiene caracteres fuera del alfabeto Base64, o se decodifica en datos binarios en lugar de texto UTF-8, como una imagen o un archivo comprimido.
- ¿Por qué el texto codificado es más largo?
- Base64 representa cada 3 bytes con 4 caracteres, así que la salida es aproximadamente un 33 % más grande que la entrada.
- ¿Qué significa el = al final de un Base64?
- Es relleno. La salida Base64 siempre tiene un número de caracteres múltiplo de cuatro, así que un = significa que el último grupo contenía dos bytes y == que contenía uno. El relleno no lleva datos, por eso base64url suele omitirlo. Esta herramienta vuelve a añadir el relleno que falte antes de decodificar.
- ¿Cómo codifico en Base64 desde la línea de comandos?
- En Linux y macOS, ejecuta printf hello | base64 para obtener aGVsbG8=. Evita un echo a secas, que añade un salto de línea y da aGVsbG8K. Para decodificar, usa base64 -d, o base64 -D en versiones antiguas de macOS. En PowerShell, usa [Convert]::ToBase64String con los bytes de tu texto.
- ¿Cómo decodifico una imagen o un PDF en Base64?
- Esta herramienta decodifica a texto UTF-8, así que con datos binarios, como un PNG o un PDF, muestra un error en lugar de un archivo. Guarda la cadena Base64 en un archivo y ejecuta base64 -d input.txt > image.png en una terminal. Quita antes el prefijo data:image/png;base64, si lo tiene, porque no forma parte de los datos codificados.
¿Qué es la codificación Base64 y cómo funciona?
Base64 representa datos binarios con 64 caracteres ASCII imprimibles: A–Z, a–z, 0–9, + y /. El alfabeto estándar está definido en el RFC 4648. El codificador lee la entrada de tres en tres bytes, divide esos 24 bits en cuatro grupos de 6 bits y asigna un carácter a cada grupo. Así es como los tres bytes de “Man” se convierten en “TWFu”. Cuando la longitud de la entrada no es múltiplo de tres, el relleno = completa el último grupo.
Base64 existe porque muchos canales se diseñaron para texto, no para bytes en bruto. Los adjuntos de correo (MIME), las URL data: en HTML y CSS, las cabeceras de autenticación HTTP Basic, los certificados PEM y los campos JSON que llevan imágenes dependen de él. Es una codificación de transporte, no una compresión ni un mecanismo de seguridad. Decodificar es instantáneo y no requiere ninguna clave, así que trata todo lo que codifiques en Base64 como texto plano que cualquiera puede leer.
Cómo decodificar Base64 a texto y por qué importa UTF-8
Para decodificar Base64 online, elige Decodificar y pega la cadena. Primero se eliminan los espacios y los saltos de línea, así que la salida partida en líneas de un archivo PEM o de un correo se decodifica sin problemas. El relleno = que falte se añade automáticamente, y también se aceptan los caracteres - y _ de la variante segura para URL, así que no necesitas saber qué variante tienes. Después, los bytes decodificados se leen como texto UTF-8.
UTF-8 importa porque Base64 codifica bytes, no caracteres. La función btoa() integrada en el navegador solo acepta Latin-1, así que llamarla con un texto que contenga ✓ o un emoji lanza un InvalidCharacterError. Esta herramienta convierte primero el texto en bytes UTF-8, así que las tildes y los emoji se conservan en la ida y la vuelta: “é” se convierte en los dos bytes C3 A9 y se codifica como “w6k=”. Si los bytes decodificados no son UTF-8 válido, como una imagen o un archivo gzip, obtienes un error en lugar de texto ilegible.
Base64 vs hex vs codificación URL: cuál usar
Base64, hex y la codificación porcentual convierten datos en texto seguro, pero sirven para cosas distintas. Hex usa dos caracteres por byte, así que la salida dobla su tamaño, pero es fácil de leer y es el estándar para hashes y checksums. Base64 usa cuatro caracteres por cada tres bytes, alrededor de un 33 % más, lo que lo convierte en la mejor opción para contenidos binarios más grandes, como imágenes, claves o el contenido de archivos dentro de JSON.
La codificación porcentual, que se usa en las URL, está pensada para texto con unos pocos caracteres reservados, no para datos binarios. Si un valor Base64 tiene que ir en una URL, una cadena de consulta o un nombre de archivo, usa el alfabeto base64url en lugar de codificar + y / con porcentajes. Activa Seguro para URL al codificar aquí: - y _ sustituyen a + y /, y se omite el relleno =, que es exactamente el formato que usan los JWT. Para la codificación porcentual en sí, usa la herramienta de URL.
¿Algo no funciona o un resultado parece incorrecto? Informar de un problema con esta herramienta