Codificador Base64 & descodificador
Pega cualquier texto y conviértelo a Base64, o pega una cadena Base64 y recupera el texto original. Los caracteres acentuados y los emoji se gestionan correctamente (UTF-8).
¿Para qué sirve la codificación Base64?
Base64 convierte cualquier secuencia de bytes en texto formado solo por letras, cifras,
+, / y =. Te lo encontrarás por todas partes: imágenes incrustadas
en CSS y en correos (data URI), la cabecera Authorization: Basic de las peticiones HTTP
y las dos primeras partes de un JWT. Ten en cuenta que no es cifrado: cualquiera puede descodificarlo.
Su única función es transportar datos binarios por canales que aceptan texto plano.
Por qué importa el soporte de UTF-8
La función btoa() nativa del navegador falla por sí sola con letras acentuadas,
símbolos como "€" y emoji, porque solo acepta caracteres de 8 bits. Esta herramienta convierte
antes tu texto a bytes UTF-8 con TextEncoder, de modo que cadenas como "café" y "🙂" se codifican
y descodifican sin errores, dando exactamente el mismo resultado que obtendrías en Python o Node.js.
Base64 no es cifrado
Es el malentendido más común y el más peligroso: Base64 es una codificación reversible sin clave, y cualquiera la descodifica en un segundo. Un token, una contraseña o un dato personal «protegidos» con Base64 están en claro a todos los efectos.
Su oficio es otro: hacer pasar bytes cualesquiera por un canal que solo acepta texto. Nació para los adjuntos del correo, que solo pueden transportar caracteres imprimibles, y por eso hoy aparece en los JSON, en las URL y dentro de las páginas HTML.
Por qué ocupa un tercio más
Base64 toma tres bytes cada vez y los escribe como cuatro caracteres: de ahí el 33 % de espacio de más, más el relleno eventual con el signo «=». Es un coste fijo e inevitable, no un defecto de la implementación.
La cuenta práctica importa cuando se incrustan imágenes en las páginas: una foto de 300 kB se convierte en 400 kB de texto dentro del HTML, no se guarda en caché por separado y se vuelve a descargar en cada visita. Solo tiene sentido para iconos pequeñísimos, donde se ahorra una petición de red.
El acento que lo rompe todo
La función btoa() del navegador trabaja solo con bytes hasta 255, así que falla con cualquier carácter fuera del latino básico: una «è», una «ñ», un emoji o un ideograma. El mensaje de error habla de caracteres fuera de rango, y no dice en absoluto cuál es el problema real.
La solución correcta es convertir antes el texto a bytes UTF-8 y luego codificarlos, y hacer el camino inverso al descodificar. Por eso una cadena codificada por un programa puede resultar ilegible en otro: no es Base64 lo que diverge, es el paso de texto a bytes.
Herramientas cercanas
Para las imágenes está la página dedicada, De Base64 a imagen. Para las direcciones web, que necesitan otras reglas de codificación, mira Codificar y descodificar URL, y para comprobar la integridad de un archivo Suma de comprobación de un archivo.