Codificar y decodificar Base64
Codifica texto o archivos a Base64 y decodifica cadenas Base64 a texto UTF-8 o al archivo original. Incluye la variante URL-safe (Base64url) de los JWT y el formato data URL para incrustar imágenes en HTML o CSS.
Cómo usar el codificador Base64
- Texto → Base64: escribe o pega el texto en modo «Codificar». Se convierte primero a bytes UTF-8, de modo que tildes, eñes, emojis y el símbolo € funcionan sin errores.
- Archivo → Base64: arrastra una imagen, un PDF o cualquier archivo. Con «Archivo como data URL» obtienes una cadena lista para pegar en
src="…"o enurl(…)de CSS; desmárcala para obtener solo el Base64. - Base64 → texto o archivo: cambia a «Decodificar» y pega la cadena (se aceptan saltos de línea, la variante URL-safe, el relleno ausente y el prefijo
data:). Si el resultado es binario, por ejemplo un PNG o un PDF, se detecta el tipo y se ofrece la descarga.
Cómo funciona Base64
Base64 representa datos binarios usando solo 64 caracteres seguros: A–Z, a–z, 0–9, + y /. Toma los bytes de 3 en 3 (24 bits) y los divide en 4 grupos de 6 bits; cada grupo, con un valor de 0 a 63, se sustituye por el carácter correspondiente. Si al final sobran 1 o 2 bytes, se rellena con =.
Longitud Base64 = 4 × ⌈bytes ÷ 3⌉ → aumento ≈ 33 %
Ejemplo con la palabra Sol: sus bytes son 83, 111, 108 → en binario 01010011 01101111 01101100 → en grupos de 6 bits 010100 110110 111101 101100 = 20, 54, 61, 44 → U, 2, 9, s. Resultado: U29s.
Ejemplos
| Entrada | Base64 estándar | Nota |
|---|---|---|
Sol | U29s | 3 bytes → 4 caracteres, sin relleno |
Hola | SG9sYQ== | 4 bytes: sobra 1, dos = |
año | YcOxbw== | La ñ ocupa 2 bytes en UTF-8 |
€ | 4oKs | 3 bytes en UTF-8 |
usuario:clave | dXN1YXJpbzpjbGF2ZQ== | Formato de la cabecera HTTP Basic |
Base64 estándar y Base64url
Los caracteres + y / tienen significado especial en las URL y en los nombres de archivo. La variante Base64url (RFC 4648, sección 5) los sustituye por - y _ y suele omitir el relleno =. Es la que usan los JSON Web Tokens: puedes ver un caso real en el decodificador de JWT. Para pasar un Base64 estándar dentro de un parámetro de consulta también puedes aplicar codificación URL, que convierte + en %2B.
Usos habituales y límites
- Incrustar recursos: iconos pequeños en CSS o HTML como data URL ahorran una petición, pero pesan un 33 % más y no se cachean por separado; úsalo solo para archivos de pocos KB. Para imágenes tienes también imagen a Base64.
- Adjuntos de correo: MIME codifica los adjuntos en Base64 con líneas de 76 caracteres (opción «MIME»).
- APIs y JSON: JSON no admite binario, así que archivos y firmas viajan en Base64. Después puedes revisar el documento con el validador de JSON.
Base64 no es cifrado. Cualquiera puede decodificarlo al instante. No lo uses para ocultar contraseñas; para comprobar integridad usa un hash SHA-256.
Los archivos se leen en tu navegador y no se suben a ningún servidor. Como el resultado se muestra en un cuadro de texto, por encima de unos pocos megabytes el navegador puede ir lento.
Preguntas frecuentes
¿Base64 es una forma de cifrado?
No. Es una codificación reversible sin clave: cualquiera puede decodificarla. Sirve para transportar datos binarios como texto, no para proteger información.
¿Por qué Base64 ocupa más que el original?
Porque cada 3 bytes se representan con 4 caracteres, un aumento de aproximadamente un 33 %, más el posible relleno = y los saltos de línea si se usan.
¿Qué significan los signos = al final?
Son relleno: indican que el último bloque tenía 1 byte (dos =) o 2 bytes (un =) en lugar de 3. Algunas variantes, como Base64url en los JWT, lo omiten.
¿Por qué al decodificar salen caracteres raros como ñ?
Porque el texto original estaba en UTF-8 y se ha leído como Latin-1 (o al revés). Esta herramienta codifica y decodifica siempre en UTF-8, la codificación estándar de la web.
¿Cómo convierto un Base64 en una imagen?
Elige «Decodificar» y pega la cadena (con o sin el prefijo data:image/…;base64,). La herramienta reconoce PNG, JPG, GIF, WebP, PDF y ZIP por su firma y te deja descargar el archivo.