Decodificador y codificador de Base64

Pega un Base64 y lee el texto al instante, o codifica texto y archivos. Entiende la cabecera Authorization: Basic, los Secrets de Kubernetes, los data URI y Base64url, e indica la línea y la columna del carácter inválido.

El Base64 suele llevar contraseñas y tokens. Aquí la conversión se hace en tu navegador: el contenido no se envía a ningún servidor, no va a la URL y no se guarda.

Modo
0 caracteres
Ejemplos:

Resultado

Todavía no hay nada

Pega un Base64 en el campo o usa uno de los ejemplos. El resultado aparece aquí mientras escribes.

¿Vas a poner una imagen en HTML, CSS o un correo? El conversor de imagen muestra la vista previa y genera el data URI listo.

Imagen a Base64

Qué es Base64

Base64 es una forma de escribir bytes cualesquiera usando solo 64 caracteres seguros para texto: de la A a la Z, de la a a la z, del 0 al 9, + y /. Cada grupo de 3 bytes se convierte en 4 caracteres, y el = final completa el último grupo. Sirve para pasar datos binarios o texto con acentos por lugares que solo aceptan ASCII, como cabeceras HTTP, JSON, YAML y correo. No tiene clave ni contraseña: cualquiera lo decodifica.

Dónde aparece Base64 en el día a día

  • En la cabecera Authorization: Basic, que lleva usuario:contraseña en Base64. Si la pegas aquí, el valor sale separado en usuario y contraseña.

  • En los Secrets de Kubernetes, donde cada valor de data: está en Base64. Pega la salida de kubectl get secret nombre -o yaml y verás todas las claves decodificadas juntas.

  • En mensajes de cola y webhooks: Google Pub/Sub entrega el cuerpo en message.data en Base64, y el API Gateway de AWS hace lo mismo con cuerpos binarios cuando isBase64Encoded es true.

  • En archivos dentro de texto: adjuntos de correo (MIME), certificados PEM, y PDF o imágenes que las API envían en JSON.

Base64 y Base64url

Base64url cambia + por - y / por _, porque + y / tienen significado en URL y en rutas de archivo, y suele omitir el = final. Es el formato de JWT y de muchos tokens en enlaces. Este decodificador acepta los dos sin que tengas que elegir.

VarianteCaracteres extra= al finalDónde aparece
Base64 (RFC 4648, sección 4)+ /SíCabecera Basic, Kubernetes, MIME, PEM, data URI
Base64url (RFC 4648, sección 5)- _Normalmente noJWT, parámetros de URL, nombres de archivo

Por qué el texto decodificado sale raro

Si ves cosas como ñ en lugar de ñ, el texto se guardó en UTF-8 y se leyó como Latin-1, o al revés. Aquí el texto se lee como UTF-8 y, si los bytes no son UTF-8 válido, como Windows-1252, con un aviso. Si todo el resultado es ilegible, el contenido no es texto: puede ser una imagen, un PDF, un ZIP o un gzip. En ese caso la página indica el tipo y ofrece la descarga.

Base64 en la terminal

En Linux, echo -n 'texto' | base64 codifica y base64 -d decodifica. En macOS el comando es el mismo; las versiones antiguas usan -D para decodificar. En PowerShell, [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('texto')) codifica. Sin -n, echo añade un salto de línea y el Base64 cambia: echo -n user da dXNlcg==, y echo user da dXNlcgo=.

Base64 no protege nada

Base64 solo cambia la forma de escribir los bytes. Un Secret de Kubernetes sin cifrado en etcd y sin control de acceso queda legible para quien pueda leerlo, y una cabecera Basic por HTTP sin TLS entrega la contraseña a cualquiera en el camino. Para ocultar un valor, usa cifrado; para probar que no cambió, usa un hash o un HMAC.

Preguntas frecuentes sobre Base64

Decodificación, errores comunes, cabecera Basic, Kubernetes y privacidad.