Codificador / decodificador Base64

Codifica y decodifica Base64, Base64URL, Base32 y hexadecimal — el texto en vivo mientras escribes, los archivos arrastrando y soltando — con un decodificador lo bastante estricto como para decirte la posición exacta del primer carácter que no pertenece, en lugar de encogerse de hombros. Todo se ejecuta en tu navegador: las cadenas que la gente decodifica son tan a menudo tokens y secretos que enviarlas a un servidor, o pegarlas en un chat de IA con registro, es justo lo que un decodificador nunca debe pedirte.

Archivos

Suelta un archivo en cualquier parte de este cuadro para codificarlo con el formato seleccionado arriba: obtendrás el texto codificado y una URL de datos lista para usar. O pega aquí texto codificado y descarga los bytes decodificados como un archivo.

Cuatro alfabetos, un mismo trabajo

Los cuatro formatos hacen lo mismo — escribir bytes arbitrarios usando solo caracteres seguros e imprimibles — para públicos distintos. El Base64 estándar es el formato por defecto de los archivos adjuntos de correo, los archivos de configuración y miles de API. Base64URL cambia los dos caracteres que romperían una URL (+ y /) por - y _, elimina el relleno, y es el alfabeto que va dentro de cada JSON Web Token: decodifica uno con el decodificador JWT y sus tres segmentos usan este formato. Base32 usa un alfabeto más pequeño e insensible a mayúsculas que sobrevive a ser leído en voz alta y reescrito, por eso los secretos de autenticación TOTP se emiten en él. Hex duplica el tamaño y compra transparencia total: un byte, dos caracteres, nada oculto; es el formato de los hashes, que el generador de hashes produce y el identificador de hashes reconoce.

El rigor es deliberado, y es la diferencia entre un decodificador y una herramienta de depuración. Los mecanismos integrados del navegador, como atob(), lanzan un único error genérico tanto para una cadena con una errata en la posición 4 como para una que no es Base64 en absoluto. Este decodificador valida carácter a carácter y señala la primera posición que falla: una comilla arrastrada desde JSON, un + donde pertenece el alfabeto seguro para URL, relleno varado en el medio, o un carácter final cuyos bits sobrantes no son cero, lo que significa que la cadena se editó después de codificarla. El noventa por ciento de los misterios de «esto no se decodifica» se ven en esa única posición en cuanto alguien la señala. Y como el trabajo implica tan a menudo credenciales — un secreto de Kubernetes es Base64 (una codificación, nunca un cifrado), la carga de un token, una clave en un archivo de configuración —, toda la conversión ocurre localmente, siguiendo la misma regla que el validador .env: la entrada sensible nunca se transmite. El artículo complementario, Base64 no es cifrado, desarrolla por qué importa esa distinción.

Preguntas frecuentes

¿Es Base64 una forma de cifrado?

No. Base64 es una codificación: un cambio de disfraz reversible, sin clave y sin secreto. Cualquiera que vea una cadena Base64 puede decodificarla al instante, y por eso «la clave de API está codificada en Base64 en la configuración» significa que la clave de API está, en la práctica, en texto plano en la configuración. El artículo Base64 no es cifrado desentraña codificación, cifrado y hash, y los errores que produce cada confusión.

¿Por qué este decodificador me dice la posición exacta de un error?

Porque un «carácter no válido» sin posición es la forma en que los decodificadores genéricos te hacen perder la tarde. Las cadenas pegadas suelen fallar por una de tres razones: un carácter extraño del texto circundante (una comilla, una coma, una línea de un registro), el alfabeto equivocado (una cadena segura para URL introducida en un decodificador estándar) o una copia truncada. Aquí se nombra el primer carácter problemático con su índice, para que puedas mirar ese punto exacto y ver cuál de las tres cosas pasó.

¿Cuál es la diferencia entre Base64 y Base64URL?

El alfabeto. El Base64 estándar usa + y /, que son caracteres estructurales en las URL, así que el Base64 seguro para URL los cambia por - y _ y normalmente elimina el relleno =. Esa es la variante que hay dentro de cada JWT. Introducir una variante en el decodificador de la otra es la causa más común de un fallo de decodificación en la posición del primer + o /; esta herramienta mantiene los modos separados para que el mensaje de error pueda decirte que eso es lo que ocurrió.

¿Es seguro decodificar aquí un token o un secreto?

Sí: la conversión se ejecuta en tu navegador, en esta página, y nada de lo que pegues se transmite ni se almacena. Eso importa, porque las cosas que la gente decodifica son muy a menudo credenciales: un bloque Base64 en un archivo de configuración, un secreto de Kubernetes (que es Base64, no cifrado: véase la pregunta anterior), la carga de un token. Pegar la misma cadena en un chat de IA envía una copia a un sistema de terceros con registro; véase nunca dejes que un chatbot toque tus secretos.

¿Por qué mi archivo se decodificó como «no es UTF-8 válido»?

Porque es binario — una imagen, un archivo comprimido, cualquier cosa compilada — y lo binario no es texto. El decodificador de texto se niega en lugar de entregarte caracteres corruptos. Usa la sección de archivos debajo de los cuadros de texto: pega allí el Base64 y descarga el archivo reconstruido con sus bytes intactos.