No es texto

Son ${ tamano(binario.bytes.length) } de datos binarios.

Imagen decodificada
${ archivo.nombre } ${ archivo.tipo } · ${ tamano(archivo.tamano) } → ${ tamano(archivo.base64.length) } en Base64 (${ aumento } % más)

¿Qué es Base64?

Base64 es una forma de escribir cualquier dato, sea texto, una imagen o un PDF, usando solo 64 caracteres que no dan problemas en ningún sistema: las letras de la A a la Z en mayúsculas y minúsculas, los números del 0 al 9 y los signos + y /. El signo = se usa como relleno al final. Está definido en el estándar RFC 4648.

Cada 3 bytes del original se convierten en 4 caracteres, así que el resultado ocupa un 33 % más que el original.

¿Para qué se usa?

  • Adjuntos del correo: el email solo transporta texto, así que los archivos adjuntos viajan en Base64.
  • Imágenes dentro de HTML o CSS: un icono pequeño se puede incrustar como data URI (data:image/png;base64,…) y ahorrar una petición al servidor.
  • APIs y JSON: para enviar archivos o datos binarios dentro de un texto.
  • Tokens JWT: sus tres partes van en Base64url.
  • Autenticación básica HTTP: el usuario y la contraseña viajan en la cabecera Authorization codificados en Base64.

Base64 no es cifrado

Cualquiera puede decodificar un Base64 al momento, sin ninguna clave: solo cambia la forma de escribir los datos. Por eso no sirve para proteger contraseñas ni información privada. Para eso hay que usar un hash como bcrypt o un cifrado de verdad.

¿Qué es Base64url?

Es una variante pensada para ir dentro de URL y nombres de archivo: cambia el + por - y la / por _, que en una URL tienen un significado especial, y suele quitar el relleno =. Es la que usan, por ejemplo, los tokens JWT.

Copiado al portapapeles.