1 Elige la codificación
2 Pégalo
3 Llévate el resultado
# Codificador y decodificador Base64 — y URL, entidades HTML, hexadecimal y escapes Base64, codificación porcentual, entidades HTML, hexadecimal y escapes con barra invertida, en los dos sentidos. Nada se pega en el servidor de nadie. > Codifica y decodifica Base64 en los dos alfabetos, codifica URL en porcentaje, escapa entidades HTML y lee hexadecimal y escapes con barra invertida. Todo corre en tu navegador y no se sube nada: un token nunca sale de tu equipo. Esta es una herramienta interactiva de navegador en https://abox.tools/es/codificar-base64/. Los archivos se procesan en el dispositivo donde se ejecuta ese navegador. La página explica las funciones opcionales de red y los envíos deliberados. Lo que sigue es su explicación escrita; abre la dirección para usarla. ## Tus textos se **procesan en tu navegador**. No se suben para procesarlos. Cada codificación de aquí es aritmética sobre una cadena de texto, hecha aquí, en esta página. Los códecs están escritos a mano y viven en `src/encode.js`; y no hay nada más. Esta herramienta no tiene ninguna función de red, nada que pedir y nada que enviar, lo cual importa aquí más que en casi ningún otro sitio: lo que la gente pega en un decodificador de Base64 en línea es un token, y pegar un token en la web de otra persona es entregárselo. - ✗ Sin subidas - ✗ Sin cuenta - ✗ Sin límite de tamaño - ✓ Funciona sin conexión - ✓ Código abierto ## Cómo codificar o decodificar Base64 sin subirlo 1. **Elige la codificación.** Base64 en los dos alfabetos, codificación porcentual para un valor suelto o para una URL entera, las cinco entidades HTML, bytes en hexadecimal y los escapes con barra invertida de un literal de cadena. La nota bajo el menú dice para qué sirve cada una. 2. **Elige el sentido.** *Codificar* toma texto plano y produce la forma codificada; *Decodificar* devuelve la forma codificada al texto plano. El resultado sigue tu escritura, así que cambiar de sentido es un clic y nada que volver a teclear. 3. **Pégalo, o suelta el archivo.** Vale cualquier cosa que puedas seleccionar y copiar. Un archivo soltado sobre el selector lo lee tu propio navegador y lo pone en la caja: aquí no hay ningún paso de subida que omitir. 4. **Lee el error, si lo hay.** Un decodificador que falla aquí dice qué encontró — un carácter que el Base64 no usa, relleno donde no toca, bytes que no son texto — en vez de devolver algo plausible y equivocado. 5. **Llévate el resultado.** Cópialo, o descárgalo como archivo de texto. Los contadores bajo la caja dicen cuántos bytes entraron y cuántos salieron. ## La versión larga [¿Base64 es un cifrado?](https://abox.tools/es/guias/es-base64-un-cifrado/): No, y la diferencia importa en la práctica. Codificar, cifrar y hashear resuelven tres problemas distintos: lo primero lo deshace cualquiera, lo segundo quien tiene la clave, lo tercero nadie. Cuál es cuál, y cómo reconocerlos a simple vista. ## También en la caja - [Compartir texto y archivos](https://abox.tools/es/compartir-texto/): Lo compartido vive en esta pestaña abierta. Los lectores lo reciben cifrado, directamente desde tu navegador, y al cerrar la pestaña se acaba: ningún servidor guarda nada. - [Generador de QR y códigos de barras](https://abox.tools/es/generar-codigo-qr/): Escríbelo y se convierte en un código. Para hacerlo no se envía nada. - [Lector de códigos QR y de barras](https://abox.tools/es/escanear-codigo-qr/): Apúntale con la cámara o suelta una imagen. Se lee aquí, y en ningún otro sitio. - [Hash y suma de verificación](https://abox.tools/es/calcular-checksum/): Comprueba una descarga contra el número que publicó quien la distribuye, sin enviársela a nadie. ## Preguntas ### ¿Se sube mi texto a alguna parte? No. Cada codificador y cada decodificador de esta página es una función que corre en tu propio navegador, en tu propio equipo. Esta herramienta no tiene ninguna función de red: nunca pide nada y nunca envía nada, y la `Content-Security-Policy` de la página nombra todas las direcciones que puede contactar, ninguna de las cuales es nuestra. Esa es la razón para usarla con un token de acceso o una cookie de sesión: pegar cualquiera de esas cosas en el decodificador de otra persona es entregársela. ### ¿El Base64 de aquí es el mismo Base64 que en todas partes? Sí: se comprueba contra los vectores de prueba del RFC 4648 y no contra sí mismo. Los dos alfabetos se decodifican, así que un JWT escrito con `-` y `_` se lee tan bien como uno escrito con `+` y `/`, y la entrada partida a 64 caracteres se junta por ti. La codificación va por bytes UTF-8, así que una letra acentuada o un emoji sobrevive a la ida y vuelta. ### ¿Base64 es un cifrado? No, y tomarlo por uno es el error clásico. Base64 es una ortografía: los mismos bytes, escritos en un alfabeto que sobrevive a una URL, a un correo o a una cadena JSON. Cualquiera puede leerlo de vuelta — esta página lo hace en un milisegundo —, así que no esconde nada y no protege nada. Si lo que tienes es secreto, necesita cifrado de verdad antes de codificarse, no en su lugar. ### ¿Por qué falló la decodificación? Porque lo pegado no es exactamente lo que se le dijo al códec que era, y el error dice en qué sentido: un carácter fuera del alfabeto Base64, relleno donde no toca, un signo de porcentaje sin dos dígitos hexadecimales detrás, o bytes que sí se decodifican desde Base64 pero no son texto UTF-8 — lo que suele significar que el original era un archivo y no una cadena. El `atob` del navegador habría devuelto algo plausible en su lugar; que te lo digan es todo el sentido de pegar algo en un decodificador. ### ¿Cuál es la diferencia entre las dos codificaciones de dirección web? Un valor suelto, o la dirección entera. Codificar *un valor* escapa todo aquello a lo que una URL da significado — las barras, los signos de interrogación, los ampersands —, que es lo que quieres para un solo parámetro de la cadena de consulta. Codificar una *URL entera* deja la dirección funcionando: las barras y el `?` se quedan, y solo se escapan los caracteres que una URL no puede llevar de ninguna manera. Usar lo primero sobre una dirección entera rompe la dirección; usar lo segundo sobre un valor pierde dónde acaba el valor. ### ¿De qué tamaño puede ser el archivo? Aquí no hay ningún límite puesto, porque no hay ningún servidor pagándolo. El techo práctico es tu propio equipo: unos cuantos megabytes de texto van bien, y con un documento muy largo la página espera una pausa en tu escritura antes de recodificar, en vez de pelearse contigo por el teclado. ### ¿Es gratis? ¿Necesito una cuenta? Es gratis, y no hay cuenta, ni inicio de sesión, ni versión de prueba, ni límite de cuánto pegas. El sitio lleva publicidad, que es lo que lo paga, y a los anuncios no se les da nada sobre tu texto. ### ¿Funciona sin conexión? Sí. Carga la página una vez, desconéctate de internet y verás que sigue funcionando. Esa es además la forma más sencilla de demostrar que no se sube nada: una herramienta que mandara tu texto fuera a decodificar se pararía en cuanto desenchufaras. ## Cómo se comprueba la promesa de privacidad - **El procesamiento se hace en este navegador.** La herramienta procesa entradas y resultados en el navegador. Su código no los sube para procesarlos. Content-Security-Policy limita recursos y destinos, pero los hosts permitidos pueden recibir solicitudes: no inspecciona sus datos ni prueba por sí sola que nada se envíe. Compara código y solicitudes de la operación concreta o complétala desconectado. - **Aquí nada pide nada.** En `src/` no hay ningún `fetch`, ningún `XMLHttpRequest` y ningún `sendBeacon`. Cada codificador y cada decodificador son funciones de esta página que reciben una cadena y devuelven una cadena. - **El decodificador te avisa cuando algo está mal.** El `atob` del navegador acepta entradas que debería rechazar y devuelve algo plausible. El Base64 de aquí está escrito a mano y se comprueba contra los vectores de prueba de la RFC 4648, y cuando lo que pegaste no es Base64, lo dice, y dice por qué. Las pruebas de `tests/js/text-encode.test.js` comprueban exactamente eso. - **Qué carga Google, y qué no llega a ver.** Los scripts de publicidad y de medición vienen de Google, y el botón de donación, de Buy Me a Coffee. A ninguno se le entrega un carácter de tu texto. Cada línea que lo lee, lo analiza o lo escribe se sirve desde este origen y está en el repositorio. - **Funciona sin conexión.** Desconéctate de la red y la herramienta sigue igual, porque nunca hubo dentro de ella ningún paso que pasara por la red. Es la prueba más sencilla de todas. **Compruébalo tú.** Nada de lo anterior hay que aceptarlo por fe. Esta página se genera a partir de las plantillas y la configuración del repositorio, con un script de compilación que puedes leer y ejecutar por tu cuenta, y el resultado se publica en la rama `dist`. Así puedes comparar lo que se sirve con lo que sale de compilar las fuentes: https://github.com/A-Box-of-Tools/website Los archivos por los que conviene empezar son `config/site.toml`, donde está la Content-Security-Policy y `src/encode.js` para el Base64 que se comprueba contra los vectores de prueba de la RFC 4648 en vez de contra sí mismo, y que rechaza las entradas malas en lugar de devolver algo plausible como hace `atob`.
Cómo codificar o decodificar Base64 sin subirlo
- Elige la codificación. Base64 en los dos alfabetos, codificación porcentual para un valor suelto o para una URL entera, las cinco entidades HTML, bytes en hexadecimal y los escapes con barra invertida de un literal de cadena. La nota bajo el menú dice para qué sirve cada una.
- Elige el sentido. Codificar toma texto plano y produce la forma codificada; Decodificar devuelve la forma codificada al texto plano. El resultado sigue tu escritura, así que cambiar de sentido es un clic y nada que volver a teclear.
- Pégalo, o suelta el archivo. Vale cualquier cosa que puedas seleccionar y copiar. Un archivo soltado sobre el selector lo lee tu propio navegador y lo pone en la caja: aquí no hay ningún paso de subida que omitir.
- Lee el error, si lo hay. Un decodificador que falla aquí dice qué encontró — un carácter que el Base64 no usa, relleno donde no toca, bytes que no son texto — en vez de devolver algo plausible y equivocado.
- Llévate el resultado. Cópialo, o descárgalo como archivo de texto. Los contadores bajo la caja dicen cuántos bytes entraron y cuántos salieron.
La versión larga
¿Base64 es un cifrado? No, y la diferencia importa en la práctica. Codificar, cifrar y hashear resuelven tres problemas distintos: lo primero lo deshace cualquiera, lo segundo quien tiene la clave, lo tercero nadie. Cuál es cuál, y cómo reconocerlos a simple vista.
También en la caja
Preguntas
¿Se sube mi texto a alguna parte?
No. Cada codificador y cada decodificador de esta página es una función que corre en tu propio navegador, en tu propio equipo. Esta herramienta no tiene ninguna función de red: nunca pide nada y nunca envía nada, y la Content-Security-Policy de la página nombra todas las direcciones que puede contactar, ninguna de las cuales es nuestra. Esa es la razón para usarla con un token de acceso o una cookie de sesión: pegar cualquiera de esas cosas en el decodificador de otra persona es entregársela.
¿El Base64 de aquí es el mismo Base64 que en todas partes?
Sí: se comprueba contra los vectores de prueba del RFC 4648 y no contra sí mismo. Los dos alfabetos se decodifican, así que un JWT escrito con - y _ se lee tan bien como uno escrito con + y /, y la entrada partida a 64 caracteres se junta por ti. La codificación va por bytes UTF-8, así que una letra acentuada o un emoji sobrevive a la ida y vuelta.
¿Base64 es un cifrado?
No, y tomarlo por uno es el error clásico. Base64 es una ortografía: los mismos bytes, escritos en un alfabeto que sobrevive a una URL, a un correo o a una cadena JSON. Cualquiera puede leerlo de vuelta — esta página lo hace en un milisegundo —, así que no esconde nada y no protege nada. Si lo que tienes es secreto, necesita cifrado de verdad antes de codificarse, no en su lugar.
¿Por qué falló la decodificación?
Porque lo pegado no es exactamente lo que se le dijo al códec que era, y el error dice en qué sentido: un carácter fuera del alfabeto Base64, relleno donde no toca, un signo de porcentaje sin dos dígitos hexadecimales detrás, o bytes que sí se decodifican desde Base64 pero no son texto UTF-8 — lo que suele significar que el original era un archivo y no una cadena. El atob del navegador habría devuelto algo plausible en su lugar; que te lo digan es todo el sentido de pegar algo en un decodificador.
¿Cuál es la diferencia entre las dos codificaciones de dirección web?
Un valor suelto, o la dirección entera. Codificar un valor escapa todo aquello a lo que una URL da significado — las barras, los signos de interrogación, los ampersands —, que es lo que quieres para un solo parámetro de la cadena de consulta. Codificar una URL entera deja la dirección funcionando: las barras y el ? se quedan, y solo se escapan los caracteres que una URL no puede llevar de ninguna manera. Usar lo primero sobre una dirección entera rompe la dirección; usar lo segundo sobre un valor pierde dónde acaba el valor.
¿De qué tamaño puede ser el archivo?
Aquí no hay ningún límite puesto, porque no hay ningún servidor pagándolo. El techo práctico es tu propio equipo: unos cuantos megabytes de texto van bien, y con un documento muy largo la página espera una pausa en tu escritura antes de recodificar, en vez de pelearse contigo por el teclado.
¿Es gratis? ¿Necesito una cuenta?
Es gratis, y no hay cuenta, ni inicio de sesión, ni versión de prueba, ni límite de cuánto pegas. El sitio lleva publicidad, que es lo que lo paga, y a los anuncios no se les da nada sobre tu texto.
¿Funciona sin conexión?
Sí. Carga la página una vez, desconéctate de internet y verás que sigue funcionando. Esa es además la forma más sencilla de demostrar que no se sube nada: una herramienta que mandara tu texto fuera a decodificar se pararía en cuanto desenchufaras.