Codificar y decodificar Base64
Pega tu texto, elige dirección y formato y copia el resultado: esta herramienta convierte texto a Base64 o Base64url y viceversa (tildes, ñ y emojis se tratan correctamente como UTF-8) y hace la codificación URL con signos de porcentaje en sus tres variantes habituales. Si la entrada no es válida, te indica la posición del error.
Cómo se calcula
Base64 representa bytes cualesquiera con solo 64 caracteres imprimibles (A–Z, a–z, 0–9, + y /). Cada 3 bytes se convierten en 4 caracteres; si al final sobran bytes, uno o dos signos igual completan el hueco (el relleno o padding). El resultado es aproximadamente un tercio más largo que el original. Así, los datos binarios pueden viajar por canales que solo aceptan texto: adjuntos de correo, URL de datos (data:image/png;base64,…), autenticación HTTP Basic o JSON.
Base64 no es cifrado. Cualquiera puede recuperar el original sin clave. Nunca confíes en Base64 para proteger credenciales.
Base64 frente a Base64url
El signo más y la barra tienen un significado especial en las URL y en los nombres de archivo. Por eso Base64url (RFC 4648 § 5) los sustituye por el guion y el guion bajo, y normalmente omite el relleno; así se codifican los JSON Web Tokens (JWT). Ejemplo: los bytes FB FF se convierten en +/8= en Base64 y en -_8 en Base64url.
Por qué importa UTF-8
Base64 codifica bytes, no letras. Por eso la herramienta convierte primero tu texto a UTF-8: la «ñ» ocupa dos bytes y un emoji, cuatro. La función btoa() integrada en el navegador no sabe hacerlo y da error con caracteres que no son Latin-1. Si los bytes decodificados no forman texto UTF-8 válido, la herramienta los muestra como valores hexadecimales.
Codificación URL: tres variantes
- Parte de una URL (
encodeURIComponent): codifica todo excepto A–Z, a–z, 0–9 y- _ . ! ~ * ' ( ), incluidos/ ? & = #. Es lo correcto para valores sueltos, como un término de búsqueda en?q=…. - URL completa (
encodeURI): conserva los caracteres con significado especial (: / ? # & = +…) y solo codifica espacios, letras con tilde y similares. Para un enlace completo que debe seguir funcionando. - Datos de formulario (
application/x-www-form-urlencoded): así envían sus datos los formularios HTML. Los espacios se convierten en+y también se codifican! ' ( ) ~. Al decodificar,+vuelve a ser un espacio.
Cada carácter fuera del conjunto permitido se escribe como % seguido de dos dígitos hexadecimales por cada byte UTF-8 (RFC 3986 § 2.1): espacio = %20, é = %C3%A9.
Todas las conversiones se hacen en tu navegador. Tu entrada no se envía, no se guarda y no se escribe en la barra de direcciones.
Preguntas frecuentes
¿Cómo decodifico Base64?
Elige «Decodificar» y el formato «Base64» y pega el código: el texto plano aparece al instante. Si el código contiene - y _, es Base64url; en ese caso elige ese formato.
¿Base64 es un cifrado?
No. Base64 es solo otra forma de escribir los mismos datos y se puede revertir sin clave. Para proteger datos necesitas un cifrado real y, para contraseñas, un hash de contraseñas.
¿Por qué Base64 termina a menudo en = o ==?
Base64 trabaja en grupos de 3 bytes. Si al final sobran 1 o 2 bytes, la salida se rellena con == o = para que su longitud sea múltiplo de 4. Base64url suele omitir ese relleno.
¿Qué diferencia hay entre encodeURI y encodeURIComponent?
encodeURI está pensado para direcciones completas y no toca / ? & = #. encodeURIComponent también los codifica y es la opción correcta para valores de parámetros sueltos; si no, un & dentro del valor partiría la URL.
¿Por qué un espacio a veces es %20 y a veces +?
En las rutas y según RFC 3986, un espacio se escribe %20. Los formularios HTML (application/x-www-form-urlencoded) lo escriben como +. Al decodificar tienes que saber qué variante tienes; allí un signo más real se escribe %2B.
¿Cuánto aumenta el tamaño de un archivo en Base64?
Unos 4/3 del tamaño original: 3 bytes se convierten en 4 caracteres. Una imagen de 300 KB ocupa unos 400 KB en Base64, algo más con los saltos de línea MIME.
Fuentes y base legal
- RFC 4648: RFC 4648 – The Base16, Base32, and Base64 Data Encodings (§ 4 Base64, § 5 Base64url, § 3.2 Padding)
- RFC 3986: RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax (§ 2.1 Percent-Encoding, § 2.2 Reserved Characters)
- WHATWG URL Standard – application/x-www-form-urlencoded
- MDN Web Docs – encodeURIComponent()
- MDN Web Docs – encodeURI()
- MDN Web Docs – Base64 (Unicode problem, TextEncoder)
Última actualización:
Herramientas relacionadas
- Generador de hash: SHA-256, SHA-512, SHA-1, MD5Calcula hashes SHA-256, SHA-384, SHA-512, SHA-1 y MD5 de textos o archivos y verifica sumas de comprobación, en tu navegador, sin subir nada y gratis.
- Probar regex: tester de expresiones regularesPrueba expresiones regulares de JavaScript en vivo: coincidencias resaltadas, grupos de captura en tabla y el patrón explicado. Gratis, sin subir nada.
- Formateador, validador y minificador de JSONValida JSON según la RFC 8259 con línea, columna y explicación clara del error. Formatea o minifica, ordena claves y copia. Funciona en tu navegador.
- Generador de UUID: crea y valida UUID v4 y v7Genera UUID en línea: versión 4 (aleatoria) o versión 7 (ordenada por tiempo), hasta 1000 a la vez. Valida un UUID y lee su versión, variante y fecha.
- Generador de contraseñasGenera contraseñas aleatorias seguras y frases de contraseña memorables con entropía en bits, directamente en tu navegador: nada se envía ni se guarda.
- Cuál es mi dirección IPMuestra al instante tu dirección IP pública, detecta si es IPv4 o IPv6 y explica la diferencia. Gratis: tu IP no se guarda.