Por Just Quality, desarrollo de software en Granada.

Texto

Base64

Codifica y decodifica texto en Base64 para pruebas, APIs y documentación.

Base64

VGV4dG8gZGUgcHJ1ZWJhIHBhcmEgQmFzZTY0

Texto codificado en Base64.

  • Caracteres originales: 27.
  • Caracteres codificados: 36.

Codifica, no cifra. Cualquiera lo revierte en un segundo.

Base64 no es cifrado, y cuesta un tercio más

Codificar en Base64 sirve para meter datos binarios donde solo caben caracteres de texto, como el cuerpo de un correo o una URL. No oculta nada: cualquiera lo revierte en un segundo, así que no es sitio para una contraseña. Y como cada tres bytes se convierten en cuatro caracteres, lo codificado pesa un 33% más que el original.

Codifica y decodifica texto y datos en Base64 en el navegador. Útil para incrustar recursos, revisar cabeceras o inspeccionar valores codificados sin depender de la línea de comandos.

Para qué se codifica en Base64

  • Incrustar imágenes o fuentes pequeñas en CSS o HTML con data URIs.
  • Inspeccionar valores codificados en cabeceras, tokens o parámetros.
  • Preparar contenido binario para meterlo en un JSON o una URL.

Codificar no es cifrar

Base64 codifica, no cifra: cualquiera puede decodificarlo, así que no sirve para proteger información sensible. La codificación se hace en tu navegador y no guardamos nada de lo que introduces.

Preguntas frecuentes

¿Puedo usar Base64 para que nadie vea una contraseña?

Para eso no sirve, y hay un ejemplo que lo deja clarísimo. La autenticación básica de HTTP manda tu usuario y tu contraseña unidos por dos puntos y codificados en Base64, sin nada más encima, y por eso solo se puede usar sobre HTTPS. Pega una de esas cabeceras aquí y tendrás la contraseña delante en un segundo. Es un formato de transporte, no una caja fuerte.

¿Qué haces con las tildes y con la ñ?

Las pasamos primero a UTF-8 y luego a Base64, que es lo que hace que todo vuelva bien al descodificar. Fíjate en la palabra café: son cuatro letras, pero cinco bytes, porque la é ocupa dos. De ahí que un texto en español engorde algo más que uno en inglés cuando lo codificas.

Me falla al descodificar, ¿dónde miro?

Mira si la cadena lleva guiones o guiones bajos. Los tokens de tipo JWT usan la variante base64url, que cambia el signo más por un guion y la barra por un guion bajo, y esa el navegador no la acepta. Cambia esos dos caracteres y volverá a funcionar. Fuera de ese caso, lo normal es que te hayas dejado un trozo sin copiar.