Saltar al contenido
Quaestio

Base64

Escribe o pega texto y se codifica o decodifica sobre la marcha.

0 caracteres · 0 bytes

Resultado

Escribe algo en el campo de arriba.
Insertar

Inserta esta herramienta en tu sitio

Copia el código y pégalo donde quieras que aparezca la herramienta, por ejemplo en una entrada de blog o en la página de una escuela. Es gratis, el recuadro no tiene anuncios y la herramienta calcula en el navegador de quien la usa.

Cómo funciona

Base64 reescribe bytes arbitrarios con 64 caracteres que sobreviven al paso por sistemas pensados para texto, como el correo electrónico y las direcciones web.

Tres bytes se convierten en cuatro caracteres, así que el resultado es aproximadamente un tercio más largo que el original. Los signos igual del final son relleno, que se usa cuando el número de bytes no es divisible entre tres.

Base64 es una codificación, no un cifrado. Cualquiera puede decodificarlo, así que no protege nada. Úsalo para transportar datos, nunca para ocultarlos.

El texto se codifica en UTF-8 antes de convertirlo, por eso funcionan las letras con tilde, la eñe y los emojis. La función integrada del navegador, por sí sola, solo admite caracteres por debajo de 256.

La variante segura para URL sustituye el signo más por un guion y la barra por un guion bajo. Al decodificar, aquí se acepta cualquiera de las dos variantes, con o sin relleno.

Cómo funciona la herramienta

Al codificar, la herramienta convierte primero el texto en bytes UTF-8 y luego deja que la función btoa del navegador los escriba en Base64. Al decodificar, quita todos los espacios en blanco, incluidos los saltos de línea dentro del texto, convierte los guiones y los guiones bajos de nuevo en signos más y barras, y agrega signos igual hasta que la longitud sea divisible entre cuatro. Después decodifica atob, y los bytes se leen como UTF-8 en modo estricto: los bytes que no forman UTF-8 válido dan un mensaje de error en lugar de caracteres de reemplazo. Debajo del campo ves caracteres y bytes. Los caracteres se cuentan como los ve un lector, así que un emoji con tono de piel es un carácter pero ocho bytes en UTF-8, y son los bytes los que fijan la longitud del resultado.

Ejemplo paso a paso

Té ocupa tres bytes en UTF-8: 54 para la T y C3 A9 para la é. Sus 24 bits se dividen en cuatro grupos de seis: 010101, 001100, 001110 y 101001, que son 21, 12, 14 y 41. En el alfabeto de Base64, donde A–Z son 0–25 y a–z son 26–51, eso es V, M, O y p. El resultado es VMOp, sin relleno, porque tres bytes caben exactos en cuatro caracteres.

Hola ocupa cuatro bytes y da SG9sYQ==. El cuarto byte solo llena dos caracteres de un nuevo grupo de cuatro, y los dos signos igual completan el grupo.

Casos límite

La herramienta trabaja con texto. El Base64 que contiene datos binarios, como una imagen o un archivo comprimido, por lo general da el mensaje de error al decodificarlo, porque los bytes no son UTF-8 válido.

El Base64 del correo electrónico va partido en líneas: el RFC 2045 permite como máximo 76 caracteres por línea y dice que los saltos de línea deben ignorarse al decodificar. Como la herramienta quita primero todos los espacios en blanco, la parte codificada de un correo se puede pegar tal cual.

Una cadena cuya longitud deja un residuo de 1 al dividirla entre cuatro nunca es válida. Un carácter suelto al final solo lleva seis bits, que no alcanzan para un byte completo, así que el algoritmo del Infra Standard de WHATWG, que sigue atob, rechaza esa entrada. SG9sY, que es SG9sYQ== sin los tres últimos caracteres, da el mensaje de error, mientras que SG9sYQ sin signos igual se decodifica como Hola.

Fuentes

Cómo se verifican las herramientas