Cómo convertir Base64 a binario
- Pega el Base64 en Entrada · Base64. Se admiten saltos de línea, espacios, un prefijo
data:, los caracteres URL-safe-y_y el relleno ausente. - Cada byte decodificado aparece como 8 bits en Salida · Binario.
- Elige el Separador bajo la salida: Espacio (por defecto), Ninguno,
,,,o Nueva línea. - Usa Copiar salida o Descargar para llevarte los bits. Guardar bytes guarda en cambio los datos decodificados como archivo, con la extensión deducida de su contenido.
El selector Binario → Base64, o Binario a Base64, hace el camino inverso.
Cómo los caracteres Base64 se convierten en bits
Cada carácter Base64 representa 6 bits: su posición en el alfabeto, de A = 0 a / = 63. Cuatro caracteres dan 24 bits, que el decodificador reagrupa en tres bytes de 8 bits. Tomemos SGkh:
| Carácter | S | G | k | h |
|---|---|---|---|---|
| Valor | 18 | 6 | 36 | 33 |
| 6 bits | 010010 | 000110 | 100100 | 100001 |
Juntos dan 010010000110100100100001. Cortados en bytes:
| Byte | 01001000 | 01101001 | 00100001 |
|---|---|---|---|
| Decimal | 72 | 105 | 33 |
| Texto | H | i | ! |
Así que SGkh es Hi!, y la salida binaria es 01001000 01101001 00100001. Los límites de carácter y de byte solo coinciden cada 24 bits, y por eso un solo carácter Base64 erróneo puede estropear dos bytes vecinos. La explicación paso a paso recorre el mismo proceso desde el lado del codificador.
El relleno y los bits sobrantes
Cuando los datos no son múltiplo de 3 bytes, el último grupo queda corto. Hi son 16 bits, que necesitan tres caracteres Base64 (18 bits). Los 2 bits extra se ponen a cero, y = completa el grupo hasta cuatro caracteres:
| Base64 | Bits que lleva | Bytes de salida |
|---|---|---|
SGkh | 24 | 01001000 01101001 00100001 |
SGk= | 18, de ellos 2 de relleno | 01001000 01101001 |
SA== | 12, de ellos 4 de relleno | 01001000 |
Los bits de relleno nunca aparecen en la salida. La página sobre el relleno explica por qué existe =.
Cuándo ayuda ver los bits
- Los protocolos y los encabezados de archivo suelen empaquetar varios flags sí/no en un byte. En binario lees esos campos de bits directamente, sin convertir dígitos hex de cabeza.
- Para comparar dos valores, decodifica ambos y compáralos línea a línea con Separador en Nueva línea; un único bit cambiado salta a la vista.
- En la enseñanza y en los acertijos, los bytes de 8 bits junto a los grupos de 6 bits muestran de dónde sale el 33 % de aumento de tamaño.
Para algo de más de unas pocas decenas de bytes, el hex se lee mejor: Base64 a hex muestra los mismos bytes en la cuarta parte del espacio. La salida binaria ocupa 8 caracteres por byte más un separador, así que un millón de caracteres Base64 (750.000 bytes) se convierten en unos 6,75 millones de caracteres de binario. El cuadro de salida muestra los primeros 2 millones; Copiar salida y Descargar siempre dan el resultado completo.
Base64 a binario en código
import base64
" ".join(f"{b:08b}" for b in base64.b64decode("SGkh"))
# '01001000 01101001 00100001'
Array.from(Buffer.from("SGkh", "base64"), b => b.toString(2).padStart(8, "0")).join(" ");
// '01001000 01101001 00100001'
Para escribir los bytes decodificados en un archivo binario, usa open("out.bin", "wb").write(base64.b64decode(s)) en Python o fs.writeFileSync("out.bin", Buffer.from(s, "base64")) en Node. Las páginas de Python y Node.js tienen los ejemplos completos con archivos.
Preguntas frecuentes
¿Pasar Base64 a binario es lo mismo que decodificar Base64?
La decodificación es la misma; solo cambia cómo se muestra. Esta página escribe los bytes como ceros y unos. Si quieres los bytes como archivo, que es lo que a menudo se entiende por «binario», usa Base64 a archivo o el botón Guardar bytes de aquí.
¿Por qué 8 dígitos por byte si Base64 usa 6 bits por carácter?
La salida muestra bytes, y un byte tiene 8 bits. Base64 corta el mismo flujo de bits en trozos de 6, así que 3 bytes (24 bits) siempre corresponden a 4 caracteres.
¿Cómo obtengo los bits sin espacios?
Pon Separador en Ninguno. Así SGk= da 0100100001101001 como una sola cadena.
¿Qué pasa con los bits de relleno?
Se descartan. En SGk= el último carácter lleva 6 bits, pero solo 4 son datos; los otros 2 son ceros que completan el carácter, y el decodificador los desecha.