Codificador y decodificador Base64
Base64 escribe cualquier dato con 64 caracteres seguros: «Man» se convierte en «TWFu». Cada 3 bytes se convierten en 4 caracteres, así que el resultado es alrededor de un tercio más largo.
- Comprobado en miles de casos
- Fuentes: RFC 4648
- Actualizado el 6 de noviembre de 2026
Tu texto se queda en tu dispositivo: no se envía ni se pone en la dirección de la página.
Resultado
15 bytes ↔ 20 caracteres Base64
Pequeño reto
Racha 0Récord 0
Ponte a prueba: cada respuesta la calcula la herramienta, y las opciones falsas son las trampas más comunes.
Cómo funciona
Fórmula: Caracteres = 4 × ⌈bytes ÷ 3⌉
Primero el texto se convierte en bytes con UTF-8: un byte para una letra sin tilde, de dos a cuatro para las letras acentuadas y los emojis. Los bytes se leen de 3 en 3, es decir, 24 bits divididos en 4 grupos de 6 bits; cada grupo, de 0 a 63, elige un carácter entre A–Z, a–z, 0–9, + y / (RFC 4648). Cuando el último grupo solo tiene 1 o 2 bytes, el signo «=» completa el resultado hasta un múltiplo de 4. La variante para URL usa - y _ en lugar de + y /.
Ejemplos prácticos
«Man»
3 bytes → 4 caracteres: TWFu.
«Ma»
2 bytes: un = completa el grupo, TWE=.
«é»
2 bytes en UTF-8: w6k=.
Errores frecuentes
Usar Base64 para proteger una contraseña.
Cualquiera lo decodifica sin clave: no es un cifrado.
Creer que el tamaño no cambia.
30 bytes dan 40 caracteres: un tercio más.
Poner Base64 estándar en una URL: «??>» da Pz8+, y allí el + se convierte en un espacio.
Usa la variante para URL: Pz8-.
Vectores de prueba de la RFC 4648
| Texto | Base64 |
|---|---|
| "" | "" |
| "f" | "Zg==" |
| "fo" | "Zm8=" |
| "foo" | "Zm9v" |
| "foob" | "Zm9vYg==" |
| "fooba" | "Zm9vYmE=" |
| "foobar" | "Zm9vYmFy" |
Tamaño una vez codificado
| Bytes | Caracteres |
|---|---|
| 1 | 4 |
| 2 | 4 |
| 3 | 4 |
| 10 | 16 |
| 100 | 136 |
| 1000 | 1336 |
| 1.000.000 | 1.333.336 |
Preguntas frecuentes
¿Base64 es un cifrado?
No. Cualquiera puede decodificarlo, sin clave: solo sirve para que los datos viajen como texto (correos, JSON, URL). Nunca lo uses para ocultar una contraseña.
¿Por qué mi Base64 termina en = o ==?
La longitud no era múltiplo de 3 bytes: un = indica que el último grupo tenía 2 bytes, y == que solo tenía 1.
¿Por qué el texto codificado es más largo?
Cada 3 bytes se convierten en 4 caracteres, un tercio más, sin contar los = finales. Las letras acentuadas y los emojis ocupan de 2 a 4 bytes en UTF-8, así que crecen todavía más.