Como converter Base64 para binário
- Cole o Base64 em Entrada · Base64. Quebras de linha, espaços, um prefixo
data:,-e_URL-safe e preenchimento ausente são aceitos. - Cada byte decodificado aparece como 8 bits em Saída · Binário.
- Escolha o Separador abaixo da saída: Espaço (o padrão), Nenhum,
,,,ou Nova linha. - Use Copiar saída ou Baixar para levar os bits. Salvar bytes salva os dados decodificados como arquivo, com a extensão tirada do conteúdo.
O seletor Binário → Base64, ou Binário para Base64, faz o caminho inverso.
Como os caracteres Base64 viram bits
Cada caractere Base64 representa 6 bits: a posição dele no alfabeto, de A = 0 a / = 63. Quatro caracteres dão 24 bits, que o decodificador reagrupa em três bytes de 8 bits. Pegue SGkh:
| Caractere | S | G | k | h |
|---|---|---|---|---|
| Valor | 18 | 6 | 36 | 33 |
| 6 bits | 010010 | 000110 | 100100 | 100001 |
Juntos, eles formam 010010000110100100100001. Cortados em bytes:
| Byte | 01001000 | 01101001 | 00100001 |
|---|---|---|---|
| Decimal | 72 | 105 | 33 |
| Texto | H | i | ! |
Então SGkh é Hi!, e a saída binária fica 01001000 01101001 00100001. Os limites dos caracteres e os limites dos bytes só se alinham a cada 24 bits, e é por isso que um único caractere Base64 errado pode estragar dois bytes vizinhos. A explicação passo a passo percorre o mesmo processo pelo lado do codificador.
Preenchimento e os bits que sobram
Quando os dados não são múltiplos de 3 bytes, o último grupo fica curto. Hi tem 16 bits, que precisam de três caracteres Base64 (18 bits). Os 2 bits extras são zerados, e o = completa o grupo até quatro caracteres:
| Base64 | Bits carregados | Bytes de saída |
|---|---|---|
SGkh | 24 | 01001000 01101001 00100001 |
SGk= | 18, dos quais 2 são enchimento | 01001000 01101001 |
SA== | 12, dos quais 4 são enchimento | 01001000 |
Os bits de enchimento nunca aparecem na saída. Mais sobre por que o = existe na página sobre preenchimento.
Onde ver os bits ajuda
- Protocolos e cabeçalhos de arquivo muitas vezes empacotam várias flags de sim/não num único byte. Em binário você lê esses campos de bits diretamente, sem converter dígitos hex de cabeça.
- Para comparar dois valores, decodifique os dois e compare linha a linha com o Separador em Nova linha; um único bit invertido salta aos olhos.
- No ensino e em quebra-cabeças, os bytes de 8 bits ao lado dos grupos de 6 bits mostram de onde vem o acréscimo de 33% no tamanho.
Para qualquer coisa maior que algumas dezenas de bytes, hex é mais fácil de ler: Base64 para hex mostra os mesmos bytes num quarto do espaço. A saída binária tem 8 caracteres por byte mais um separador, então um milhão de caracteres Base64 (750.000 bytes) vira cerca de 6,75 milhões de caracteres binários. A caixa de saída mostra os primeiros 2 milhões; Copiar saída e Baixar sempre entregam o resultado completo.
Base64 para binário no 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 gravar os bytes decodificados num arquivo binário, use open("out.bin", "wb").write(base64.b64decode(s)) em Python ou fs.writeFileSync("out.bin", Buffer.from(s, "base64")) em Node. As páginas de Python e Node.js têm os exemplos completos com arquivos.
Perguntas frequentes
Base64 para binário é o mesmo que decodificar Base64?
A decodificação é a mesma; só muda a exibição. Esta página escreve os bytes como 0 e 1. Se você quer os bytes como arquivo, que é o que “binário” muitas vezes significa, use Base64 para arquivo ou o botão Salvar bytes daqui.
Por que 8 dígitos por byte se o Base64 usa 6 bits por caractere?
A saída mostra bytes, e um byte tem 8 bits. O Base64 corta o mesmo fluxo de bits em pedaços de 6 bits, então 3 bytes (24 bits) sempre correspondem a 4 caracteres.
Como obter os bits sem espaços?
Defina o Separador como Nenhum. SGk= dá então 0100100001101001 numa string só.
O que acontece com os bits de preenchimento?
São descartados. Em SGk=, o último caractere carrega 6 bits, mas só 4 pertencem aos dados; os outros 2 são zeros que completam o caractere, e o decodificador os descarta.