Guia de Referência Rápida para Codificação e Decodificação Base64: Exemplos de Comandos no Windows, Linux e Mac

Codifique e decodifique arquivos em Base64 no Windows, Linux e Mac.

Conteúdo da página

Este guia mostra como codificar e decodificar arquivos e strings para Base64 da linha de comando no Windows, Linux e macOS — sem necessidade de ferramentas extras.

homem barbudo fazendo programação avançada à noite

Este guia faz parte da Ferramentas para Desenvolvedores: O Guia Completo de Fluxos de Trabalho de Desenvolvimento Moderno.

Base64 converte dados binários em texto ASCII usando 64 caracteres (A–Z, a–z, 0–9, +, /). É amplamente utilizado para codificar credenciais em HTTP Basic Auth, payloads JWT (veja Decodificar e imprimir token JWT), segredos do Kubernetes, URIs de dados em HTML/CSS e incorporação de dados binários em JSON ou variáveis de ambiente. Usar a linha de comando mantém os dados sensíveis locais e é scriptável em pipelines de CI/CD.

Codificação e Decodificação Base64 no Windows

O Windows não vem com um comando base64 dedicado, mas você pode usar ferramentas nativas.

Usando o Prompt de Comando com Certutil

  1. Abra o Prompt de Comando.

  2. Codifique um arquivo para Base64:

    certutil -encode input.bin output.b64
    

    Substitua input.bin pelo caminho do seu arquivo e output.b64 pelo nome de arquivo de saída desejado.

  3. Para imprimir o Base64 no console sem salvar um arquivo temporário:

    certutil -encode input.bin tmp.b64 && findstr /v /c:- tmp.b64 && del tmp.b64
    

    findstr /v /c:- remove as linhas -----BEGIN CERTIFICATE----- e -----END CERTIFICATE----- que o certutil adiciona.

Decodificar Base64 no Windows (Certutil)

certutil -decode encoded.b64 decoded.bin

Usando PowerShell para Codificar e Decodificar

Codificar um arquivo:

[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\file.bin"))

Codificar uma string (UTF-8):

[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("Hello, World!"))
# Saída: SGVsbG8sIFdvcmxkIQ==

Decodificar Base64 para string:

[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("SGVsbG8sIFdvcmxkIQ=="))
# Saída: Hello, World!

Decodificar Base64 para arquivo:

[System.IO.File]::WriteAllBytes("decoded.bin", [Convert]::FromBase64String((Get-Content encoded.b64 -Raw)))

Estes métodos funcionam sem instalar software adicional. Para mais automação de shell, veja o Guia de Referência PowerShell.

Codificação e Decodificação Base64 no Linux

O comando base64 vem pré-instalado na maioria das distribuições Linux (GNU coreutils).

Sintaxe Básica

base64 [OPÇÕES] [ARQUIVO]

Sem arquivo ou quando o arquivo é -, ele lê da entrada padrão.

Codificar um Arquivo para Base64

base64 input_file > output_file

Exemplo:

base64 myfile.txt > encoded.txt

Para imprimir o conteúdo codificado no terminal:

base64 myfile.txt

Codificar uma String para Base64

echo -n "Hello, World!" | base64
# Saída: SGVsbG8sIFdvcmxkIQ==

Use -n com echo para evitar uma quebra de linha final. Para decodificar strings em JWTs, veja Decodificar e imprimir token JWT.

Desativar Quebra de Linha (-w 0)

Por padrão, base64 quebra a saída a cada 76 caracteres. Para JSON, variáveis de ambiente, URLs ou uso com Terraform base64encode, desative a quebra de linha:

base64 -w 0 input_file > output_file

Decodificar Base64 no Linux

base64 -d encoded_file > decoded_file
# ou
base64 --decode encoded_file > decoded_file

Exemplo:

echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d
# Saída: Hello, World!

Alternativa: OpenSSL

echo -n "data" | openssl base64 -e
echo "ZGF0YQ==" | openssl base64 -d

Para mais fluxos de trabalho de linha de comando, o Guia de Referência Bash cobre redirecionamento e scripting.

Codificação e Decodificação Base64 no macOS

O macOS inclui um comando base64 semelhante ao do Linux, mas requer a flag -i para entrada de arquivo.

Codificar um Arquivo para Base64

base64 -i input_file > output_file

Exemplo:

base64 -i myfile.txt > encoded.txt

Para imprimir no terminal:

base64 -i myfile.txt

Codificar e Copiar para a Área de Transferência

base64 -i input_file | pbcopy

Decodificar Base64 no Mac

base64 -D -i encoded_file > decoded_file

A flag -D ativa o modo de decodificação; -i especifica o arquivo de entrada. Estes comandos funcionam em todas as versões modernas do macOS a partir da 10.7.

Referência do Comando base64 no Linux

Saída completa de ajuda para a ferramenta GNU base64:

$ base64 --help

Uso: base64 [OPÇÕES]... [ARQUIVO]
Codifica ou decodifica ARQUIVO, ou entrada padrão, para saída padrão.

Sem ARQUIVO, ou quando ARQUIVO é -, lê a entrada padrão.

Argumentos obrigatórios para opções longas são obrigatórios para opções curtas também.
  -d, --decode          decodificar dados
  -i, --ignore-garbage  ao decodificar, ignora caracteres não alfabéticos
  -w, --wrap=COLS       quebra linhas codificadas após COLS caracteres (padrão 76).
                          Use 0 para desativar a quebra de linha
      --help        exibe esta ajuda e sai
      --version     exibe informações de versão e sai

Os dados são codificados conforme descrito para o alfabeto base64 na RFC 4648.
Ao decodificar, a entrada pode conter quebras de linha além dos bytes do
alfabeto base64 formal. Use --ignore-garbage para tentar recuperar
qualquer outro byte não alfabético no stream codificado.
...

Casos de Uso Comuns

Caso de uso Comando / abordagem
Cabeçalho/payload JWT Decodificar com base64 -d ou jq — veja Decodificar e imprimir token JWT
HTTP Basic Auth echo -n "user:pass" | base64 -w 0 para Authorization: Basic <result>
Segredo do Kubernetes kubectl create secret generic mysecret --from-literal=key=$(base64 -w 0 file.bin)
cURL com Basic Auth Use -u user:pass ou -H "Authorization: Basic $(echo -n user:pass | base64 -w 0)" — veja Guia de Referência cURL
Data URI em HTML data:image/png;base64,$(base64 -w 0 image.png)